| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- #ifndef USER_LED_H__
- #define USER_LED_H__
- #include <stdint.h>
- #include <stdbool.h>
- #include "define.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define LED_INTERVAL 10
- #define LED_ON_DUTY 95
- #define LED_OFF_DUTY 0
- #define TIM_LED_PERIOD 100
- #define TIM_LED_PRESCALER 360
- #define TIM_DEV_LED TIM5
- #define TIM_IND_LED TIM2
- #define LED_PWM_RCC_ENABLE RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM5, ENABLE);
- #define LED_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
- #define LED_REMAPCONFIG_ENABLE GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);
- #define DEV_LED_GPIO GPIOA
- #define DEV_LED_PIN GPIO_Pin_2
- #define LEFT_LED_R_GPIO GPIOA
- #define LEFT_LED_R_PIN GPIO_Pin_15
- #define LEFT_LED_G_GPIO GPIOB
- #define LEFT_LED_G_PIN GPIO_Pin_3
- #define RIGHT_LED_R_GPIO GPIOB
- #define RIGHT_LED_R_PIN GPIO_Pin_10
- #define RIGHT_LED_G_GPIO GPIOB
- #define RIGHT_LED_G_PIN GPIO_Pin_11
- #define DEV_LED_INIT(InitStructure) TIM5_OC3Init(InitStructure);
- #define LEFT_LED_R_INIT(InitStructure) TIM_OC1Init(TIM_IND_LED, InitStructure);
- #define LEFT_LED_G_INIT(InitStructure) TIM_OC2Init(TIM_IND_LED, InitStructure);
- #define RIGHT_LED_R_INIT(InitStructure) TIM_OC3Init(TIM_IND_LED, InitStructure);
- #define RIGHT_LED_G_INIT(InitStructure) TIM_OC4Init(TIM_IND_LED, InitStructure);
- #define DEV_LED_RUN TIM5_OC3PreloadConfig(TIM_OCPreload_Enable);
- #define DEV_LED_STOP TIM5_OC3PreloadConfig(TIM_OCPreload_Disable);
- #define DEV_LED_COMPARE(value) TIM5_SetCompare3(value)
- #define LEFT_LED_R_RUN TIM_OC1PreloadConfig(TIM_IND_LED, TIM_OCPreload_Enable);
- #define LEFT_LED_R_STOP TIM_OC1PreloadConfig(TIM_IND_LED, TIM_OCPreload_Disable);
- #define LEFT_LED_R_COMPARE(value) TIM_SetCompare1(TIM_IND_LED, value)
- #define LEFT_LED_G_RUN TIM_OC2PreloadConfig(TIM_IND_LED, TIM_OCPreload_Enable);
- #define LEFT_LED_G_STOP TIM_OC2PreloadConfig(TIM_IND_LED, TIM_OCPreload_Disable);
- #define LEFT_LED_G_COMPARE(value) TIM_SetCompare2(TIM_IND_LED, value)
- #define RIGHT_LED_R_RUN TIM_OC3PreloadConfig(TIM_IND_LED, TIM_OCPreload_Enable);
- #define RIGHT_LED_R_STOP TIM_OC3PreloadConfig(TIM_IND_LED, TIM_OCPreload_Disable);
- #define RIGHT_LED_R_COMPARE(value) TIM_SetCompare3(TIM_IND_LED, value)
- #define RIGHT_LED_G_RUN TIM_OC4PreloadConfig(TIM_IND_LED, TIM_OCPreload_Enable);
- #define RIGHT_LED_G_STOP TIM_OC4PreloadConfig(TIM_IND_LED, TIM_OCPreload_Disable);
- #define RIGHT_LED_G_COMPARE(value) TIM_SetCompare4(TIM_IND_LED, value)
- typedef enum
- {
- LED_QUEUE_TIME = 0,
- }LED_QUEUE_TYPE;
- typedef enum{
- DEV_LED = 0,
- LEFT_LED = 1,
- RIGHT_LED = 2,
- LED_TYPE_MAX = 3,
- }LED_TYPE;
- typedef enum{
- RED_LED = 0,
- GREEN_LED = 1,
- YELLOW_LED = 2,
- }LED_COLOR;
- typedef enum{
- LED_STAT_OFF = 0,
- LED_STAT_ON = 1
- }LED_STAT;
- typedef enum{
- LED_WORK_OFF = 0, //暗
- LED_WORK_ON = 1, //亮
- LED_WORK_INVERT = 2, //闪烁
- LED_WORK_BREATHE = 4, //呼吸模式
- LED_WORK_MAX = 5,
- }LED_WORK_STAT;
- typedef void (*led_set_duty_func)(uint16_t duty);
- typedef enum{
- LED_VIEW_NULL = 0,
- LED_VIEW_ALARM, //报警
- LED_VIEW_WARN, //警告
- LED_VIEW_KEY_ELECT, //有钥匙并上锁
- LED_VIEW_NOKEY_ELECT, //无钥匙并上锁
- LED_VIEW_KEY_NOELECT, //有钥匙没上锁
- LED_VIEW_NOKEY_NOELECT, //无钥匙没上锁
- }led_view_stat_e;
- typedef enum{
- LED_ALL_ALARM_RST = 0,
- LED_ALL_ALARM_BLE = 1,
- LED_ALL_ALARM_CAN_IDX_ERROR = 2,
- LED_ALL_ALARM_OFFLINE = 3,
- }led_all_alarm_stat_e;
- typedef struct{
- const uint8_t idx;
- LED_STAT stat;
- LED_COLOR color;
- LED_WORK_STAT workStat;
- led_view_stat_e viewStat;
- uint32_t single_flicker_period;
- uint32_t flicker_period ;
- uint32_t flicker_onperiod;
- uint32_t flicker_count;
- uint8_t duty_on;
- uint32_t duty_value;
- uint32_t single_on_durationTime; //PWM变化结束后持续时间,单位:ms
- uint32_t on_durationTime; //PWM变化结束后持续时间,单位:ms
- uint32_t single_off_durationTime; //PWM变化结束后持续时间,单位:ms
- uint32_t off_durationTime; //PWM变化结束后持续时间,单位:ms
- led_set_duty_func set_duty;
- }led_work_s;
- void led_task_init(void);
- void led_task_start(void);
- bool set_led_indication(LED_TYPE type, LED_COLOR color, LED_WORK_STAT work_stat, ...);
- void vUser_led_set_view_stat(uint8_t idx, led_view_stat_e stat);
- void vUser_led_set_alarm_view(led_all_alarm_stat_e alarmStat, bool stat);
- extern tmosTaskID led_task_id;
- #ifdef __cplusplus
- }
- #endif
- #endif // LED_H__
- /** @} */
|