user_elect.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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 5
  10. #define ELECT_INTERVAL 10
  11. #define ELECT_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOD, ENABLE)
  12. #define ELECT_01_OPEN_GPIO GPIOB
  13. #define ELECT_01_OPEN_PIN GPIO_Pin_3
  14. #define ELECT_01_OPEN_ON GPIO_WriteBit(ELECT_01_OPEN_GPIO, ELECT_01_OPEN_PIN, Bit_SET)
  15. #define ELECT_01_OPEN_OFF GPIO_WriteBit(ELECT_01_OPEN_GPIO, ELECT_01_OPEN_PIN, Bit_RESET)
  16. #define ELECT_01_CLOSE_GPIO GPIOD
  17. #define ELECT_01_CLOSE_PIN GPIO_Pin_2
  18. #define ELECT_01_CLOSE_ON GPIO_WriteBit(ELECT_01_CLOSE_GPIO, ELECT_01_CLOSE_PIN, Bit_SET)
  19. #define ELECT_01_CLOSE_OFF GPIO_WriteBit(ELECT_01_CLOSE_GPIO, ELECT_01_CLOSE_PIN, Bit_RESET)
  20. #define ELECT_02_OPEN_GPIO GPIOC
  21. #define ELECT_02_OPEN_PIN GPIO_Pin_12
  22. #define ELECT_02_OPEN_ON GPIO_WriteBit(ELECT_02_OPEN_GPIO, ELECT_02_OPEN_PIN, Bit_SET)
  23. #define ELECT_02_OPEN_OFF GPIO_WriteBit(ELECT_02_OPEN_GPIO, ELECT_02_OPEN_PIN, Bit_RESET)
  24. #define ELECT_02_CLOSE_GPIO GPIOC
  25. #define ELECT_02_CLOSE_PIN GPIO_Pin_11
  26. #define ELECT_02_CLOSE_ON GPIO_WriteBit(ELECT_02_CLOSE_GPIO, ELECT_02_CLOSE_PIN, Bit_SET)
  27. #define ELECT_02_CLOSE_OFF GPIO_WriteBit(ELECT_02_CLOSE_GPIO, ELECT_02_CLOSE_PIN, Bit_RESET)
  28. #define ELECT_03_OPEN_GPIO GPIOC
  29. #define ELECT_03_OPEN_PIN GPIO_Pin_10
  30. #define ELECT_03_OPEN_ON GPIO_WriteBit(ELECT_03_OPEN_GPIO, ELECT_03_OPEN_PIN, Bit_SET)
  31. #define ELECT_03_OPEN_OFF GPIO_WriteBit(ELECT_03_OPEN_GPIO, ELECT_03_OPEN_PIN, Bit_RESET)
  32. #define ELECT_03_CLOSE_GPIO GPIOA
  33. #define ELECT_03_CLOSE_PIN GPIO_Pin_15
  34. #define ELECT_03_CLOSE_ON GPIO_WriteBit(ELECT_03_CLOSE_GPIO, ELECT_03_CLOSE_PIN, Bit_SET)
  35. #define ELECT_03_CLOSE_OFF GPIO_WriteBit(ELECT_03_CLOSE_GPIO, ELECT_03_CLOSE_PIN, Bit_RESET)
  36. #define ELECT_04_OPEN_GPIO GPIOA
  37. #define ELECT_04_OPEN_PIN GPIO_Pin_9
  38. #define ELECT_04_OPEN_ON GPIO_WriteBit(ELECT_04_OPEN_GPIO, ELECT_04_OPEN_PIN, Bit_SET)
  39. #define ELECT_04_OPEN_OFF GPIO_WriteBit(ELECT_04_OPEN_GPIO, ELECT_04_OPEN_PIN, Bit_RESET)
  40. #define ELECT_04_CLOSE_GPIO GPIOA
  41. #define ELECT_04_CLOSE_PIN GPIO_Pin_10
  42. #define ELECT_04_CLOSE_ON GPIO_WriteBit(ELECT_04_CLOSE_GPIO, ELECT_04_CLOSE_PIN, Bit_SET)
  43. #define ELECT_04_CLOSE_OFF GPIO_WriteBit(ELECT_04_CLOSE_GPIO, ELECT_04_CLOSE_PIN, Bit_RESET)
  44. #define ELECT_05_OPEN_GPIO GPIOD
  45. #define ELECT_05_OPEN_PIN GPIO_Pin_5
  46. #define ELECT_05_OPEN_ON GPIO_WriteBit(ELECT_05_OPEN_GPIO, ELECT_05_OPEN_PIN, Bit_SET)
  47. #define ELECT_05_OPEN_OFF GPIO_WriteBit(ELECT_05_OPEN_GPIO, ELECT_05_OPEN_PIN, Bit_RESET)
  48. #define ELECT_05_CLOSE_GPIO GPIOD
  49. #define ELECT_05_CLOSE_PIN GPIO_Pin_6
  50. #define ELECT_05_CLOSE_ON GPIO_WriteBit(ELECT_05_CLOSE_GPIO, ELECT_05_CLOSE_PIN, Bit_SET)
  51. #define ELECT_05_CLOSE_OFF GPIO_WriteBit(ELECT_05_CLOSE_GPIO, ELECT_05_CLOSE_PIN, Bit_RESET)
  52. typedef enum{
  53. ELECT_WORK_NULL,
  54. ELECT_WORK_START,
  55. ELECT_WORK_END,
  56. }elect_work_type_e;
  57. typedef void (*elect_work_stat_func)(bool stat, elect_work_type_e type);
  58. typedef struct{
  59. const uint8_t idx;
  60. bool stat;
  61. elect_work_type_e type;
  62. uint32_t workTime;
  63. elect_work_stat_func func;
  64. }elect_work_s;
  65. typedef enum
  66. {
  67. ELECT_QUEUE_TIME = 0,
  68. ELECT_QUEUE_START = 1,
  69. }ELECT_QUEUE_TYPE;
  70. typedef void (*vUser_elect_upload_stat_func)(uint8_t idx, bool stat);
  71. void elect_task_init(void);
  72. void elect_task_start(void);
  73. void elect_start(uint8_t addr);
  74. void set_elect_work_stat(uint8_t idx, bool stat);
  75. void vUser_elect_set_upload_stat_func(vUser_elect_upload_stat_func func);
  76. extern tmosTaskID elect_task_id;
  77. #ifdef __cplusplus
  78. }
  79. #endif
  80. #endif // LED_H__
  81. /** @} */