Bar Logo 4kW dsPIC33C PSFB DC-DC DA (Part-No. )
 
Content
     
Loading...
Searching...
No Matches
dev_led.c
1
13#include "xc.h"
14#include "dev_led.h"
15#include "../../mcc_generated_files/system/pins.h"
16
17
23#define LED_STATE_OFF 0
24#define LED_STATE_ON 1
25#define LED_STATE_BLINK 2
26#define LED_STATE_BLINK_SLOW 3
27#define LED_STATE_BLINK_FAST 4
28#define LED_STATE_BLINK_COUNT 5
29
30 // end of dev-led-enums-private
31
32
35uint8_t ledstates[NUM_OF_LEDS];
36uint8_t ledtimer[NUM_OF_LEDS];
37
38
39uint8_t LEDIterationsCounter[NUM_OF_LEDS];
40
51void Dev_LED_Init(void)
52{
53 //Peripherals are initialized by MCC
54 Dev_LED_Blink(LED_PIM_RED);
55 Dev_LED_Blink(LED_BOARD_GREEN);
56 Dev_LED_Blink(LED_BOARD_RED);
57}
58
59
68void Dev_LED_On(uint8_t led_id)
69{
70 if (led_id >= NUM_OF_LEDS)
71 return;
72 if (ledstates[led_id] == LED_STATE_ON)
73 return;
74 ledstates[led_id] = LED_STATE_ON;
75 switch(led_id)
76 {
77 case LED_PIM_RED: LED_DP_PIM_on(); break;
78 case LED_BOARD_RED: LED_Board_Red_On(); break;
79 case LED_BOARD_GREEN: LED_Board_Green_On(); break;
80 default: Nop(); break;
81 }
82}
83
84
85
94void Dev_LED_Off(uint8_t led_id)
95{
96 if (led_id >= NUM_OF_LEDS)
97 return;
98 if (ledstates[led_id] == LED_STATE_OFF)
99 return;
100 ledstates[led_id] = LED_STATE_OFF;
101 switch(led_id)
102 {
103 case LED_PIM_RED: LED_DP_PIM_on(); break;
104 case LED_BOARD_RED: LED_Board_Red_Off(); break;
105 case LED_BOARD_GREEN: LED_Board_Green_Off(); break;
106 default: Nop(); break;
107 }
108}
109
110
111
120void Dev_LED_Toggle(uint8_t led_id)
121{
122 switch(led_id)
123 {
124 case LED_PIM_RED: LED_DP_PIM_Toggle_State(); break;
125 case LED_BOARD_RED: LED_Board_Red_Toggle_State(); break;
126 case LED_BOARD_GREEN: LED_Board_Green_Toggle_State(); break;
127 default: Nop(); break;
128 }
129}
130
131
132
141void Dev_LED_Blink(uint8_t led_id)
142{
143 if (led_id >= NUM_OF_LEDS)
144 return;
145 ledstates[led_id] = LED_STATE_BLINK;
146}
147
148
157void Dev_LED_Blink_Iter(uint8_t led_id, uint8_t count)
158{
159 if (led_id >= NUM_OF_LEDS)
160 return;
161 ledstates[led_id] = LED_STATE_BLINK_COUNT;
162 LEDIterationsCounter[led_id] = count;
163}
164
165
166
175void Dev_LED_Blink_Slow(uint8_t led_id)
176{
177 if (led_id >= NUM_OF_LEDS)
178 return;
179 ledstates[led_id] = LED_STATE_BLINK_SLOW;
180}
181
182
183
192void Dev_LED_Blink_Fast(uint8_t led_id)
193{
194 if (led_id >= NUM_OF_LEDS)
195 return;
196 ledstates[led_id] = LED_STATE_BLINK_FAST;
197}
198
199
200
211void Dev_LED_Task_100ms()
212{
213 uint8_t led_index=0;
214 uint8_t timermax=0;
215
216 for (led_index = 0; led_index < NUM_OF_LEDS; led_index++)
217 {
218 if (ledstates[led_index] > LED_STATE_ON)
219 {
220 if (ledstates[led_index] == LED_STATE_BLINK_SLOW)
221 timermax = BLINK_SLOW_INTERVAL;
222 else if (ledstates[led_index] == LED_STATE_BLINK_FAST)
223 timermax = BLINK_FAST_INTERVAL;
224 else // normal speed
225 timermax = BLINK_INTERVAL;
226 if (++ledtimer[led_index] >= timermax)
227 {
228 ledtimer[led_index] = 0;
229 switch(led_index)
230 {
231 case LED_PIM_RED: LED_DP_PIM_Toggle_State(); break;
232 case LED_BOARD_RED: LED_Board_Red_Toggle_State(); break;
233 case LED_BOARD_GREEN: LED_Board_Green_Toggle_State(); break;
234 default: Nop(); break;
235 }
236 }
237 }
238 }
239}
240
241