15#include "../../mcc_generated_files/system/pins.h"
23#define LED_STATE_OFF 0
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
35uint8_t ledstates[NUM_OF_LEDS];
36uint8_t ledtimer[NUM_OF_LEDS];
39uint8_t LEDIterationsCounter[NUM_OF_LEDS];
51void Dev_LED_Init(
void)
54 Dev_LED_Blink(LED_PIM_RED);
55 Dev_LED_Blink(LED_BOARD_GREEN);
56 Dev_LED_Blink(LED_BOARD_RED);
68void Dev_LED_On(uint8_t led_id)
70 if (led_id >= NUM_OF_LEDS)
72 if (ledstates[led_id] == LED_STATE_ON)
74 ledstates[led_id] = LED_STATE_ON;
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;
94void Dev_LED_Off(uint8_t led_id)
96 if (led_id >= NUM_OF_LEDS)
98 if (ledstates[led_id] == LED_STATE_OFF)
100 ledstates[led_id] = LED_STATE_OFF;
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;
120void Dev_LED_Toggle(uint8_t led_id)
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;
141void Dev_LED_Blink(uint8_t led_id)
143 if (led_id >= NUM_OF_LEDS)
145 ledstates[led_id] = LED_STATE_BLINK;
157void Dev_LED_Blink_Iter(uint8_t led_id, uint8_t count)
159 if (led_id >= NUM_OF_LEDS)
161 ledstates[led_id] = LED_STATE_BLINK_COUNT;
162 LEDIterationsCounter[led_id] = count;
175void Dev_LED_Blink_Slow(uint8_t led_id)
177 if (led_id >= NUM_OF_LEDS)
179 ledstates[led_id] = LED_STATE_BLINK_SLOW;
192void Dev_LED_Blink_Fast(uint8_t led_id)
194 if (led_id >= NUM_OF_LEDS)
196 ledstates[led_id] = LED_STATE_BLINK_FAST;
211void Dev_LED_Task_100ms()
216 for (led_index = 0; led_index < NUM_OF_LEDS; led_index++)
218 if (ledstates[led_index] > LED_STATE_ON)
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;
225 timermax = BLINK_INTERVAL;
226 if (++ledtimer[led_index] >= timermax)
228 ledtimer[led_index] = 0;
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;