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

Last change on this file was 10, checked in by f.jahn, 10 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.