mod_key.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "hal_key.h"
  2. #include "mod_key.h"
  3. #include "sys_timer.h"
  4. #include "sys_log.h"
  5. #include "button.h"
  6. #include "hal_key.h"
  7. #define CHECK_KEY_TIMER_TICK 50
  8. Button_t Button1;
  9. static uint8_t g_s_press_flag;
  10. key_long_press_callback_fp g_s_key_press_callback;
  11. // static void Btn1_Press_Callback(void)
  12. // {
  13. // DLOG_I("Btn1_Press_Callback");
  14. // }
  15. static void Btn1_Long_Callback(void* params)
  16. {
  17. if(g_s_press_flag == 0)
  18. {
  19. g_s_press_flag = 1;
  20. g_s_key_press_callback();
  21. }
  22. }
  23. static void Btn1_Longfree_Callback(void* params)
  24. {
  25. g_s_press_flag = 0;
  26. }
  27. static void check_key_status_timer_callback(void)
  28. {
  29. Button_Process(); //��Ҫ���ڵ��ð�����������
  30. }
  31. void MOD_KeyInit(key_long_press_callback_fp fp)
  32. {
  33. g_s_key_press_callback = fp;
  34. HAL_KeyInit();
  35. Button_Create("Button1", &Button1, HAL_KeyGetStatus, KEY_PRESS_STATUS); //���Ϊ��ȡ������ƽ�ӿ�,��������ʱ��ƽ״̬
  36. // Button_Attach(&Button1, BUTTON_DOWM, Btn1_Press_Callback); //����
  37. Button_Attach(&Button1, BUTTON_LONG, Btn1_Long_Callback); //����
  38. Button_Attach(&Button1, BUTTON_LONG_FREE, Btn1_Longfree_Callback); //�����ͷ�
  39. Get_Button_Event(&Button1);
  40. HAL_TimerRegister(check_key_status_timer_callback, CHECK_KEY_TIMER_TICK);
  41. }