source: trunk/firmware/Core/src/mode_mainswitch.c

Last change on this file was 10, checked in by f.jahn, 5 months ago

LED Modul hinzugefügt

File size: 1.8 KB
Line 
1// Keine LVP und OVP Überwachung aber Fault wird geprüft!
2// Falls nicht benötigt, nicht anschließen ?! Ist Low active mit PullUp
3
4
5#include "stdio.h"
6#include "mode_mainswitch.h"
7#include "button.h"
8#include "relais.h"
9#include "main.h"
10#include "leds.h"
11
12
13
14void MODE_MAINSWITCH_Exec(void)
15{
16
17  //Prüfe FAULT Eingang
18  int faultInput;
19  static int faultMode = 0;
20
21
22
23
24
25  if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
26  {
27    faultInput = 1;
28
29    if (faultMode == 0)
30    {
31      faultMode = 1;
32      LEDS_RT_Blink_Start(1000, 1000);   
33      BUTTON_SetModeOff(); 
34      printf("FAULT DETECTED!\n");
35    }
36
37    if (BUTTON_GetMode() != BUTTON_OFF)
38    {
39       BUTTON_SetModeOff();
40    }
41
42    if (RELAIS_GetState() == 1)
43    {
44      printf("RESET RELAIS: FAULT DETECTED!\n");
45      RELAIS_ResetPuls();
46
47      //Wir wollen nicht, das das Relais automatisch wieder startet, wenn Fault nicht mehr aktiv. Daher schalten wir
48      //Button Mode auf Off
49     
50    }     
51  }
52  else
53  {
54    faultInput = 0;
55  } 
56
57
58  //Prüfen ob ausgeschaltet werden muss
59  if (RELAIS_GetState() == 1)
60  {
61    if (BUTTON_GetMode() == BUTTON_OFF)       
62    {
63      RELAIS_ResetPuls();
64    } 
65  }
66
67
68  //Prüfen ob eingeschaltet werden kann
69  if ((RELAIS_GetState() == 0) && (faultInput == 0))
70  {
71    if (BUTTON_GetMode() == BUTTON_MANUAL_ON) 
72    {
73      LEDS_RT_Off(); //Falls im LED im Fehlermode, so können wir diese jetzt wieder ausschalten
74      faultMode = 0;
75      RELAIS_SetPuls();
76    } 
77    else if (BUTTON_GetMode() == BUTTON_AUTO)
78    {
79      LEDS_RT_Off(); //Falls im LED im Fehlermode, so können wir diese jetzt wieder ausschalten
80      faultMode=0;
81      RELAIS_SetPuls();
82    } 
83  }
84}
Note: See TracBrowser for help on using the repository browser.