key.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef __KEY_H
  2. #define __KEY_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #ifdef __KEY_H_GLOBAL
  7. #define __KEY_H_EXTERN
  8. #else
  9. #define __KEY_H_EXTERN extern
  10. #endif
  11. /************************************************************************************************
  12. * Version *
  13. ************************************************************************************************/
  14. /************************************************************************************************
  15. * How to use *
  16. ************************************************************************************************/
  17. /************************************************************************************************
  18. * Enable config *
  19. ************************************************************************************************/
  20. /************************************************************************************************
  21. * Includes *
  22. ************************************************************************************************/
  23. #include <stdint.h>
  24. /************************************************************************************************
  25. * Defines *
  26. ************************************************************************************************/
  27. /************************************************************************************************
  28. * Typedefs *
  29. ************************************************************************************************/
  30. typedef union
  31. {
  32. struct
  33. {
  34. uint8_t key_up_state_flag : 1;
  35. uint8_t key0_state_flag : 1;
  36. uint8_t key1_state_flag : 1;
  37. uint8_t key2_state_flag : 1;
  38. } bits;
  39. uint8_t key_all_state;
  40. } key_state_t;
  41. typedef struct
  42. {
  43. key_state_t key_state;
  44. uint8_t i;
  45. } key_button_t;
  46. extern key_button_t key_button;
  47. /************************************************************************************************
  48. * Interfaces *
  49. ************************************************************************************************/
  50. void key_button_init(void);
  51. void key_button_task(void);
  52. #ifdef __cplusplus
  53. };
  54. #endif
  55. #endif // __KEY_H