key.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2011-03-06 lgnq
  9. */
  10. #ifndef __KEY_H__
  11. #define __KEY_H__
  12. #include "mb9bf506r.h"
  13. #define KEY_DOWN (1<<0)
  14. #define KEY_ENTER (1<<1)
  15. #define KEY_LEFT (1<<2)
  16. #define KEY_RIGHT (1<<3)
  17. #define KEY_UP (1<<4)
  18. #define NO_KEY (1<<5)
  19. #define KEY_MASK (KEY_DOWN | KEY_ENTER | KEY_LEFT | KEY_RIGHT | KEY_UP)
  20. #define KEY_PFR (FM3_GPIO->PFR7)
  21. #define KEY_PCR (FM3_GPIO->PCR7)
  22. #define KEY_PDIR (FM3_GPIO->PDIR7)
  23. #define KEY_DDR (FM3_GPIO->DDR7)
  24. #define RT_DEVICE_CTRL_KEY_SCAN 0
  25. #define RT_DEVICE_CTRL_KEY_STATUS 1
  26. #define SET_BIT(byte, bit) ((byte) |= (1<<(bit)))
  27. #define CLR_BIT(byte, bit) ((byte) &= ~(1<<(bit)))
  28. #define TST_BIT(byte, bit) (((byte) & (1<<(bit)))?1:0)
  29. #define KEY_ENTER_GETVALUE() TST_BIT(KEY_PDIR, 1)
  30. #define KEY_DOWN_GETVALUE() TST_BIT(KEY_PDIR, 0)
  31. #define KEY_UP_GETVALUE() TST_BIT(KEY_PDIR, 4)
  32. #define KEY_RIGHT_GETVALUE() TST_BIT(KEY_PDIR, 3)
  33. #define KEY_LEFT_GETVALUE() TST_BIT(KEY_PDIR, 2)
  34. void rt_hw_key_init(void);
  35. #endif