8ce72157a659dbdea7d717fcce0223ca50bca7e9.svn-base 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /**
  2. * @File: Keys.c
  3. * @Author: Kinve JQ
  4. * @Version: V0.1
  5. * @Date: 2018.09.30
  6. * @Brief:
  7. * @Modify:
  8. 2018.09.30.Kinve:1.创建文件
  9. **/
  10. #include "Keys.h"
  11. /********************************方式2*******************************/
  12. u8 GetKey_CS(void)
  13. {
  14. return !P17; //按下
  15. }
  16. volatile pKey Keys[KEY_MAX] =
  17. {
  18. {KEY_CS, GetKey_CS, KEY_UP_FLAG, 0, 0, 0, NO_KEY_FLAG},
  19. };
  20. void Keys_Even(void) //20ms
  21. {
  22. u8 i;
  23. for ( i = 0; i < KEY_MAX; i++ )
  24. {
  25. if ( Keys[i].GetKey() )
  26. {
  27. Keys[i].DnTime++;
  28. if ( Keys[i].DnTime == CANCEL_KEY_DOWN ) //80ms
  29. {
  30. Keys[i].Res = ONE_HITS_KEY_FLAG;
  31. }
  32. else if ( Keys[i].DnTime == LONG_KEY_DOWN ) //3秒,长按
  33. {
  34. Keys[i].Res = LONG_KEY_FLAG;
  35. }
  36. }
  37. else
  38. {
  39. Keys[i].DnTime = 0;
  40. }
  41. }
  42. }
  43. void Key_CS_Hanlder(void);
  44. void Key_CS_Long_Hanlder(void);
  45. void Key_JS_Hanlder(void);
  46. void Key_JS_Long_Hanlder(void);
  47. void Keys_All_Handler(void)
  48. {
  49. if(Keys[KEY_CS].Res == ONE_HITS_KEY_FLAG)
  50. {
  51. Keys[KEY_CS].Res = NO_KEY_FLAG;
  52. Key_CS_Hanlder();
  53. }
  54. else if(Keys[KEY_CS].Res == LONG_KEY_FLAG)
  55. {
  56. Keys[KEY_CS].Res = NO_KEY_FLAG;
  57. Key_CS_Long_Hanlder();
  58. }
  59. }
  60. /****************************按键处理***********************************/
  61. void Key_JS_Hanlder ( void )
  62. {
  63. #if 0
  64. if ( SysRunType == SysRun_Norm )
  65. {
  66. StopBeep();
  67. }
  68. #endif
  69. }
  70. #if 0
  71. void soft_reset(void)
  72. {
  73. ((void (code *) (void)) 0x0000) ();
  74. }
  75. #endif
  76. void Key_CS_Hanlder ( void )
  77. {
  78. #if 0
  79. switch ( SysRunType )
  80. {
  81. case SysRun_Norm:
  82. SysRunType = SysRun_Test;
  83. sysLed_Set ( LED_MODE_TEST_RUN );
  84. break;
  85. case SysRun_Test:
  86. SysRunType = SysRun_Norm;
  87. sysLed_Set ( LED_MODE_WORK_RUN );
  88. break;
  89. }
  90. Fas_Param_Of_Mode_Change ( SysRunType );
  91. #endif
  92. }
  93. void Key_JS_Long_Hanlder ( void )
  94. {
  95. }
  96. void Key_CS_Long_Hanlder ( void)
  97. {
  98. }
  99. void WaitKey_GotoTest ( void )
  100. {
  101. #if 0
  102. static bool Can_enter_Factory = TRUE;
  103. if ( sys_rtc_time <= 10 ) //启动10秒内,按下Key_CS
  104. {
  105. if ( Can_enter_Factory )
  106. {
  107. Can_enter_Factory = FALSE;
  108. SysRunType = SysRun_Test;
  109. sysLed_Set ( LED_MODE_TEST_RUN );
  110. }
  111. }
  112. #endif
  113. }
  114. /********************* (C) COPYRIGHT Kinve JQ *******END OF FILE ********/