elect_sw.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef _ELECT_SW_H__
  2. #define _ELECT_SW_H__
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "define.h"
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. #define ELECT_SW_INTERVAL 5
  10. #define ELECT_SW_CHECK_COUNT 10
  11. #define ELECT_SW_CHECK_FAST_COUNT 2
  12. #define ELECT_SW_GPIO_RCC_ENABLE RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  13. #define ELECT_SW01_GPIO GPIOA
  14. #define ELECT_SW01_PIN GPIO_Pin_0
  15. #define ELECT_SW01_IN GPIO_ReadInputDataBit(ELECT_SW01_GPIO, ELECT_SW01_PIN)
  16. #define ELECT_SW02_GPIO GPIOA
  17. #define ELECT_SW02_PIN GPIO_Pin_1
  18. #define ELECT_SW02_IN GPIO_ReadInputDataBit(ELECT_SW02_GPIO, ELECT_SW02_PIN)
  19. #define ELECT_SW03_GPIO GPIOA
  20. #define ELECT_SW03_PIN GPIO_Pin_2
  21. #define ELECT_SW03_IN GPIO_ReadInputDataBit(ELECT_SW03_GPIO, ELECT_SW03_PIN)
  22. #define ELECT_SW04_GPIO GPIOA
  23. #define ELECT_SW04_PIN GPIO_Pin_3
  24. #define ELECT_SW04_IN GPIO_ReadInputDataBit(ELECT_SW04_GPIO, ELECT_SW04_PIN)
  25. #define ELECT_SW05_GPIO GPIOA
  26. #define ELECT_SW05_PIN GPIO_Pin_4
  27. #define ELECT_SW05_IN GPIO_ReadInputDataBit(ELECT_SW05_GPIO, ELECT_SW05_PIN)
  28. typedef bool (*get_level_func)(void);
  29. typedef struct{
  30. uint8_t idx;
  31. uint8_t electsw_stat;
  32. bool electsw_finish;
  33. uint8_t electsw_on_count;
  34. uint8_t electsw_off_count;
  35. get_level_func get_level;
  36. }electsw_work_s;
  37. typedef void (*electsw_upload_func)(uint8_t idx, bool stat);
  38. void vElectsw_init(void);
  39. void electsw_task_start(void);
  40. void vElectsw_set_upload_func(electsw_upload_func func);
  41. uint16_t electsw_task_process_event(uint8_t task_id, uint16_t events);
  42. #endif //_SWITCH_H__