source: trunk/firmware_v2/SES/src/leds.c @ 24

Last change on this file since 24 was 17, checked in by f.jahn, 9 days ago
File size: 3.8 KB
Line 
1#include "main.h"
2#include "leds.h"
3
4unsigned int onTimeCounterGN;
5unsigned int offTimeCounterGN;
6unsigned int onTimeGN;
7unsigned int offTimeGN;
8unsigned int blinkModeGN;
9
10
11unsigned int onTimeCounterRT;
12unsigned int offTimeCounterRT;
13unsigned int onTimeRT;
14unsigned int offTimeRT;
15unsigned int blinkModeRT;
16unsigned int numberOfBlinks;
17unsigned int pauseTime;
18unsigned int blinkCounter;
19
20void LEDS_Exec(void)
21{
22
23  if (onTimeCounterGN > 0)
24  {
25    onTimeCounterGN--;
26    if (onTimeCounterGN == 0)
27    {
28      HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_RESET);
29
30      if (blinkModeGN == 1) offTimeCounterGN = offTimeGN;
31    }
32  }
33
34  if (offTimeCounterGN > 0)
35  {
36    offTimeCounterGN--;
37    if (offTimeCounterGN == 0)
38    {
39      HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
40      onTimeCounterGN = onTimeGN;
41    }
42  }
43
44
45  // --- LED ROT ---
46  if (onTimeCounterRT > 0)
47  {
48    onTimeCounterRT--;
49    if (onTimeCounterRT == 0)
50    {
51      HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_RESET);
52      if (blinkModeRT == 1) offTimeCounterRT = offTimeRT;
53
54          if (blinkCounter > 0)
55          {
56                blinkCounter--;
57          }
58    }
59  }
60
61
62  if(blinkCounter == 0)
63  {
64        //Blink code wurde angezeigt, jetzt eine lange Pause
65        offTimeCounterRT = pauseTime;
66        blinkCounter = numberOfBlinks;
67  }
68
69
70  if (offTimeCounterRT > 0)
71  {
72    offTimeCounterRT--;
73    if (offTimeCounterRT == 0)
74    {
75      HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
76      onTimeCounterRT = onTimeRT;
77    }
78  }
79}
80
81// --- Steuerfunktionen LED grün ------------
82void LEDS_GN_On(void)
83{
84  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
85
86  blinkModeGN = 0; // Blinkmode zurücksetzen, falls es eingeschaltet war
87  onTimeCounterGN = 0;
88  offTimeCounterGN = 0;
89}
90
91
92
93void LEDS_GN_Flash(unsigned int time)
94{
95  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
96  onTimeCounterGN = time;
97}
98
99void LEDS_GN_Blink_Start(unsigned int on, unsigned int off )
100{
101  onTimeGN = on;
102  offTimeGN = off;
103  blinkModeGN = 1;
104
105  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
106  onTimeCounterGN = on;
107}
108
109void LEDS_GN_Off(void)
110{
111  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_RESET);
112  blinkModeGN = 0;
113  offTimeCounterGN = 0;
114  onTimeCounterGN = 0;
115}
116
117
118
119// --- Steuerfunktionen LED rot ------------
120void LEDS_RT_On(void)
121{
122  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
123
124  blinkModeRT = 0; // Blinkmode zurücksetzen, falls es eingeschaltet war
125  onTimeCounterRT = 0;
126  offTimeCounterRT = 0;
127}
128
129
130
131void LEDS_RT_Flash(unsigned int time)
132{
133  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
134  onTimeCounterRT = time;
135}
136
137void LEDS_RT_Blink_Start(unsigned int on, unsigned int off )
138{
139  onTimeRT = on;
140  offTimeRT = off;
141  blinkModeRT = 1;
142  pauseTime = off;
143
144  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
145  onTimeCounterRT = on;
146}
147
148
149void LEDS_RT_BlinkCode_Start(unsigned int blinks, unsigned int on, unsigned int off, unsigned int pause )
150{
151  onTimeRT = on;
152  offTimeRT = off;
153  blinkModeRT = 1;
154  numberOfBlinks = blinks;
155  blinkCounter = blinks;
156  pauseTime = pause;
157
158
159  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
160  onTimeCounterRT = on;
161}
162
163
164void LEDS_RT_Off(void)
165{
166  HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_RESET);
167  blinkModeRT = 0;
168  offTimeCounterRT = 0;
169  onTimeCounterRT = 0;
170}
Note: See TracBrowser for help on using the repository browser.