Keys.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef __KEYS_H
  2. #define __KEYS_H
  3. #include "TypeDef.h"
  4. /* 类型定义 ------------------------------------------------------------------*/
  5. typedef struct aa
  6. {
  7. u8 CS: 1 ;
  8. u8 JS: 1 ;
  9. u8 CS_L: 1 ;
  10. u8 JS_L: 1 ;
  11. u8 e: 1 ;
  12. u8 f: 1 ;
  13. u8 g: 1 ;
  14. u8 h: 1 ;
  15. } pKeyState ;
  16. extern pKeyState GROUP_KEY;
  17. enum KEY_SIG_DEF
  18. {
  19. KEY_CLICK_CS, //测试
  20. KEY_CLICK_JS, //计时
  21. KEY_LONG_CS, //长按测试
  22. KEY_LONG_JS, //长按计时
  23. KEYSIG_MAX
  24. };
  25. /* 常量定义 ------------------------------------------------------------------*/
  26. enum KEY_DEF
  27. {
  28. KEY_CS, //测试
  29. KEY_JS, //计时
  30. KEY_MAX
  31. };
  32. enum KeyState
  33. {
  34. KEY_UP_FLAG,
  35. KEY_DOWN_FLAG
  36. };
  37. enum KeyRes
  38. {
  39. NO_KEY_FLAG,
  40. ONE_HITS_KEY_FLAG,
  41. TWO_HITS_KEY_FLAG,
  42. THREE_HITS_KEY_FLAG,
  43. LONG_KEY_FLAG,
  44. MAX_KEY_FLAG
  45. };
  46. typedef struct
  47. {
  48. unsigned char ID; //按键号
  49. unsigned char State; //状态
  50. unsigned short DnTime; //down计时
  51. unsigned short UpTime; //up计时
  52. unsigned char HitNum; //单击计次
  53. unsigned char Res; //最后结果
  54. } pKey;
  55. /* 宏定义 --------------------------------------------------------------------*/
  56. /*
  57. 短按: 1次,80ms~280ms(down)
  58. 长按: 1200ms~>>(down)
  59. 双击: 2次,80ms~280ms(down) -> 0ms~280ms(up) -> 80ms~280ms(down)
  60. */
  61. #define KEY_TIME (20) //10ms任务,扫描一次
  62. #define CANCEL_KEY_DOWN (60/KEY_TIME) //按下<80ms,取消
  63. #define SHORT_KEY_DOWN (320/KEY_TIME) //短按80ms-280ms
  64. #define LONG_KEY_DOWN (3000/KEY_TIME) //长按3s
  65. #define CANCEL_KEY_UP (80/KEY_TIME) //松开超过80ms,取消
  66. #define MAL_KEY_DOWN (10000/KEY_TIME) //长按超过10s,故障
  67. #define HANDLE_KEY_TIME (100/KEY_TIME) //按键处理时间
  68. /* 函数定义------------------------------------------------------------------ */
  69. extern void ScanKey ( void );
  70. extern void Keys_Init( void );
  71. extern void Keys_All_Handler(void);
  72. #endif