#ifndef USER_ELECT_H__ #define USER_ELECT_H__ #include #include #include "define.h" #ifdef __cplusplus extern "C" { #endif #define ELECT_COUNT 2 #define ELECT_INTERVAL 10 #define ELECT_IN_CHECK_COUNT 10 #define ELECT_IN_CHECK_FAST_COUNT 2 #define ELECT_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE) #define ELECT_LEFT_OPEN_GPIO GPIOC #define ELECT_LEFT_OPEN_PIN GPIO_Pin_1 #define ELECT_LEFT_OPEN_ON GPIO_WriteBit(ELECT_LEFT_OPEN_GPIO, ELECT_LEFT_OPEN_PIN, Bit_SET) #define ELECT_LEFT_OPEN_OFF GPIO_WriteBit(ELECT_LEFT_OPEN_GPIO, ELECT_LEFT_OPEN_PIN, Bit_RESET) #define ELECT_RIGHT_OPEN_GPIO GPIOC #define ELECT_RIGHT_OPEN_PIN GPIO_Pin_3 #define ELECT_RIGHT_OPEN_ON GPIO_WriteBit(ELECT_RIGHT_OPEN_GPIO, ELECT_RIGHT_OPEN_PIN, Bit_SET) #define ELECT_RIGHT_OPEN_OFF GPIO_WriteBit(ELECT_RIGHT_OPEN_GPIO, ELECT_RIGHT_OPEN_PIN, Bit_RESET) #define ELECT_LEFT_IN_GPIO GPIOC #define ELECT_LEFT_IN_PIN GPIO_Pin_0 #define ELECT_LEFT_IN_IN GPIO_ReadInputDataBit(ELECT_LEFT_IN_GPIO, ELECT_LEFT_IN_PIN) #define ELECT_RIGHT_IN_GPIO GPIOC #define ELECT_RIGHT_IN_PIN GPIO_Pin_2 #define ELECT_RIGHT_IN_IN GPIO_ReadInputDataBit(ELECT_RIGHT_IN_GPIO, ELECT_RIGHT_IN_PIN) typedef enum{ ELECT_WORK_NULL, ELECT_WORK_START, ELECT_WORK_END, }elect_work_type_e; typedef void (*elect_work_stat_func)(elect_work_type_e type); typedef void (*elect_in_upload_func)(uint8_t idx, bool stat); typedef bool (*elect_get_level_func)(void); typedef struct{ const uint8_t idx; elect_work_type_e type; uint32_t workTime; elect_work_stat_func func; uint8_t elect_in_stat; bool elect_in_finish; uint8_t elect_in_on_count; uint8_t elect_in_off_count; uint8_t elect_default_count; elect_get_level_func get_level; }elect_work_s; typedef enum { ELECT_QUEUE_TIME = 0, ELECT_QUEUE_IN_TIME = 1, }ELECT_QUEUE_TYPE; void vUser_elect_task_init(void); void vUser_elect_task_start(void); void vUser_elect_start(uint8_t addr); void vUser_elect_open(uint8_t idx); void vUser_elect_set_upload_stat_func(elect_in_upload_func func); extern tmosTaskID elect_task_id; #ifdef __cplusplus } #endif #endif // LED_H__ /** @} */