e2930eadedffd16758bb3b22b11094adefe00f7b.svn-base 2.6 KB

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