PingPong/Core/Inc/Indicator.h
2024-09-27 17:28:15 +03:00

69 lines
1.3 KiB
C

/*
* 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_ */