/* * Indicator.h * * Created on: Sep 26, 2024 * Author: DashyFox */ #ifndef INC_INDICATOR_H_ #define INC_INDICATOR_H_ #include "ShiftReg.h" /********* led map: ********* * - [2] 0b01000000 * - [2] 0b00100000 * - [2] 0b00010000 * - [2] 0b00001000 * - [2] 0b00000100 * - [2] 0b00000010 * - [2] 0b00000001 * * = [1] 0b00010000 * = [1] 0b00100000 * = [1] 0b01000000 * * * * = [1] 0b00000100 * = [1] 0b00000010 * = [1] 0b00000001 * * - [0] 0b00000001 * - [0] 0b00000010 * - [0] 0b00000100 * - [0] 0b00001000 * - [0] 0b00010000 * - [0] 0b00100000 * - [0] 0b01000000 * **/ #define INDICATORS_COUNT 2 typedef struct LedMap_element { uint8_t byteIndx; uint8_t offsetMask; } LedMap_element; typedef struct LedMap { LedMap_element ALL[NUMLEDS * INDICATORS_COUNT]; LedMap_element UP[NUMLEDS]; LedMap_element DOWN[NUMLEDS]; LedMap_element RED[6]; }LedMap; extern const LedMap ledMap; void led_init(); void led_show(); void led_tick(); void led_writeMirror(uint8_t number, uint8_t state); void led_write(LedMap_element led, uint8_t state); void led_blink(LedMap_element led, uint16_t period, uint16_t count); void led_blink_num(uint8_t ledNum, uint16_t period, uint16_t count); uint8_t led_getState(LedMap_element led); void led_clear(); #endif /* INC_INDICATOR_H_ */