KEY_ATY.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * @file KEY_ATY.h
  3. *
  4. * @param Project DEVICE_GENERAL_ATY_LIB
  5. *
  6. * @author ATY
  7. *
  8. * @copyright
  9. * - Copyright 2017 - 2026 MZ-ATY
  10. * - This code follows:
  11. * - MZ-ATY Various Contents Joint Statement -
  12. * <a href="https://mengze.top/MZ-ATY_VCJS">
  13. * https://mengze.top/MZ-ATY_VCJS</a>
  14. * - CC 4.0 BY-NC-SA -
  15. * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  16. * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
  17. * - Your use will be deemed to have accepted the terms of this statement.
  18. *
  19. * @brief functions of keys for C platform (Dev-style)
  20. *
  21. * @version
  22. * - 1_01_251112 > ATY
  23. * -# Refactor to Dev-style; remove legacy global interfaces
  24. ********************************************************************************
  25. */
  26. #ifndef __KEY_ATY_H
  27. #define __KEY_ATY_H
  28. #include "INCLUDE_ATY.h"
  29. /** Types and timing defaults */
  30. #define KEY_TYPE_RELASE 0
  31. #define KEY_TYPE_SINGLE 11
  32. #define KEY_TYPE_LONG 21
  33. #define KEY_TYPE_VLONG 22
  34. #define KEY_TYPE_ACCESS_NEW 0xFF
  35. #define KEY_ATY_MAX_KEYS 8
  36. struct KEY_ATY_Dev
  37. {
  38. uint8_t key_count;
  39. uint8_t (*readDigital)(uint8_t index); /* 1=pressed, 0=released */
  40. float (*readAnalog)(uint8_t index); /* ADC value */
  41. uint16_t ad_threshold; /* threshold for release */
  42. uint16_t release_debounce_time; /* default 20ms */
  43. uint16_t press_debounce_time; /* default 100ms */
  44. uint16_t long_time; /* default 800ms */
  45. uint16_t vlong_time; /* default 2400ms */
  46. uint8_t lastKeyType[KEY_ATY_MAX_KEYS];
  47. uint8_t keyExportType[KEY_ATY_MAX_KEYS];
  48. uint16_t keyScanCount[KEY_ATY_MAX_KEYS];
  49. uint16_t keyReleaseCount[KEY_ATY_MAX_KEYS];
  50. uint8_t lock;
  51. uint8_t debugEnable;
  52. void (*LOG)(const char* s);
  53. };
  54. uint8_t KEY_ATY_InitDev(struct KEY_ATY_Dev* dev, uint8_t key_count);
  55. void KEY_ATY_ScanDigitalDev(struct KEY_ATY_Dev* dev, uint8_t keyIndex);
  56. float KEY_ATY_ScanAnalogDev(struct KEY_ATY_Dev* dev, uint8_t keyIndex);
  57. uint8_t KEY_ATY_GetTypeDev(struct KEY_ATY_Dev* dev, uint8_t keyIndex);
  58. void KEY_ATY_AccessNewDev(struct KEY_ATY_Dev* dev, uint8_t keyIndex);
  59. #endif /* __KEY_ATY_H */
  60. /******************************** End Of File *********************************/