led and rc

This commit is contained in:
2024-09-30 00:26:00 +03:00
parent 7095a09a1d
commit 6c3af6fbb5
15 changed files with 634 additions and 221 deletions

View File

@ -31,7 +31,7 @@ enum IR_CMD_LIST {
IR_NUM_9 = 8,
IR_NUM_0 = 9,
IR_DEBUG = 29, // -/--
IR_PAUSE = 43,
IR_PAUSE = 43, // .
IR_STOP = 116,
IR_START = 124,
IR_F_BTN = 23,

View File

@ -38,6 +38,7 @@
**/
#define INDICATORS_COUNT 2
#define LED_IDLE_TIMEOUT 1000
typedef struct LedMap_element {
uint8_t byteIndx;
@ -59,9 +60,24 @@ 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_write(uint8_t number, 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);
void led_progressbar(uint8_t fromLed, uint8_t toLed ,uint8_t progress);
void led_progressbarMirror(uint8_t fromLed, uint8_t toLed ,uint8_t progress);
//void led_setOnDone(void (*callback)());
//void led_resetOnDone();
void led_PingPong_start(uint8_t fromLed, uint8_t toLed);
void led_PingPong_startMirror(uint8_t fromLed, uint8_t toLed);
void led_PingPong_next();
void led_showSpeed(uint8_t progressUP, uint8_t progressDOWN);
void led_setIdleCallback(void(*callback)());
void led_resetIdleCallback();
uint8_t led_getState(LedMap_element led);
void led_clear();

View File

@ -22,7 +22,7 @@ typedef enum ServoMap{
SERVO_VERTICAL = 2
}ServoMap;
typedef enum CurrentMode {
typedef enum Mode {
NoneMode, ShotMode, ProgramMode, MacroMode,
} Mode;
@ -58,11 +58,6 @@ typedef struct CurrentMacro {
uint16_t doneCount;
} CurrentMacro;
//typedef struct CurrentState {
// uint8_t isPause;
// uint8_t isShooting;
//} CurrentState;
typedef struct CurrentInfo {
Mode mode;
State state;
@ -72,6 +67,8 @@ typedef struct CurrentInfo {
uint32_t startDelay;
} CurrentInfo;
extern CurrentInfo currentInfo;
void Robot_INIT();
void shotApply(CurrentShot*);

View File

@ -12,6 +12,16 @@
#define NUMLEDS 10
#define SHIFT_REG_DATA_PORT GPIOA
#define SHIFT_REG_DATA_PIN GPIO_PIN_4
#define SHIFT_REG_CLOCK_PORT GPIOA
#define SHIFT_REG_CLOCK_PIN GPIO_PIN_5
// Минимальные задержки для правильной работы
#define DATA_SETUP_TIME 20 // Время установки данных в нс
#define CLOCK_PULSE_WIDTH 20 // Длительность импульса тактирования в нс
void SetShiftReg_inline (unsigned char b1, unsigned char b2, unsigned char b3);
void SetShiftReg (unsigned char shiftreg[3]);