user_elect.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef USER_ELECT_H__
  2. #define USER_ELECT_H__
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "define.h"
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. #define ELECT_COUNT 2
  10. #define ELECT_INTERVAL 10
  11. #define ELECT_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE)
  12. #define ELECT_LEFT_OPEN_GPIO GPIOC
  13. #define ELECT_LEFT_OPEN_PIN GPIO_Pin_12
  14. #define ELECT_LEFT_OPEN_ON GPIO_WriteBit(ELECT_LEFT_OPEN_GPIO, ELECT_LEFT_OPEN_PIN, Bit_SET)
  15. #define ELECT_LEFT_OPEN_OFF GPIO_WriteBit(ELECT_LEFT_OPEN_GPIO, ELECT_LEFT_OPEN_PIN, Bit_RESET)
  16. #define ELECT_LEFT_CLOSE_GPIO GPIOC
  17. #define ELECT_LEFT_CLOSE_PIN GPIO_Pin_11
  18. #define ELECT_LEFT_CLOSE_ON GPIO_WriteBit(ELECT_LEFT_CLOSE_GPIO, ELECT_LEFT_CLOSE_PIN, Bit_SET)
  19. #define ELECT_LEFT_CLOSE_OFF GPIO_WriteBit(ELECT_LEFT_CLOSE_GPIO, ELECT_LEFT_CLOSE_PIN, Bit_RESET)
  20. #define ELECT_RIGHT_OPEN_GPIO GPIOA
  21. #define ELECT_RIGHT_OPEN_PIN GPIO_Pin_3
  22. #define ELECT_RIGHT_OPEN_ON GPIO_WriteBit(ELECT_RIGHT_OPEN_GPIO, ELECT_RIGHT_OPEN_PIN, Bit_SET)
  23. #define ELECT_RIGHT_OPEN_OFF GPIO_WriteBit(ELECT_RIGHT_OPEN_GPIO, ELECT_RIGHT_OPEN_PIN, Bit_RESET)
  24. #define ELECT_RIGHT_CLOSE_GPIO GPIOD
  25. #define ELECT_RIGHT_CLOSE_PIN GPIO_Pin_4
  26. #define ELECT_RIGHT_CLOSE_ON GPIO_WriteBit(ELECT_RIGHT_CLOSE_GPIO, ELECT_RIGHT_CLOSE_PIN, Bit_SET)
  27. #define ELECT_RIGHT_CLOSE_OFF GPIO_WriteBit(ELECT_RIGHT_CLOSE_GPIO, ELECT_RIGHT_CLOSE_PIN, Bit_RESET)
  28. typedef enum{
  29. ELECT_WORK_NULL,
  30. ELECT_WORK_START,
  31. ELECT_WORK_END,
  32. }elect_work_type_e;
  33. typedef void (*elect_work_stat_func)(bool stat, elect_work_type_e type);
  34. typedef struct{
  35. const uint8_t idx;
  36. bool stat;
  37. elect_work_type_e type;
  38. uint32_t workTime;
  39. elect_work_stat_func func;
  40. }elect_work_s;
  41. typedef enum
  42. {
  43. ELECT_QUEUE_TIME = 0,
  44. ELECT_QUEUE_START = 1,
  45. }ELECT_QUEUE_TYPE;
  46. typedef void (*vUser_elect_upload_stat_func)(uint8_t idx, bool stat);
  47. void elect_task_init(void);
  48. void elect_task_start(void);
  49. void elect_start(uint8_t addr);
  50. void set_elect_work_stat(uint8_t idx, bool stat);
  51. void vUser_elect_set_upload_stat_func(vUser_elect_upload_stat_func func);
  52. extern tmosTaskID elect_task_id;
  53. #ifdef __cplusplus
  54. }
  55. #endif
  56. #endif // LED_H__
  57. /** @} */