user_elect.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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_4
  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. ELECTSW_QUEUE_TIME = 2,
  46. }ELECT_QUEUE_TYPE;
  47. typedef void (*vUser_elect_upload_stat_func)(uint8_t idx, bool stat, bool finish);
  48. void elect_task_init(void);
  49. void elect_task_start(void);
  50. void elect_start(uint8_t addr);
  51. void set_elect_work_stat(uint8_t idx, bool stat);
  52. void vUser_elect_set_upload_stat_func(vUser_elect_upload_stat_func func);
  53. extern tmosTaskID elect_task_id;
  54. #ifdef __cplusplus
  55. }
  56. #endif
  57. #endif // LED_H__
  58. /** @} */