luat_keyboard.h 840 B

123456789101112131415161718192021222324252627
  1. #ifndef LUAT_KEYBOARD_H
  2. #define LUAT_KEYBOARD_H
  3. #include "luat_base.h"
  4. typedef struct luat_keyboard_ctx
  5. {
  6. uint16_t port; // 为多keyboard预留,默认为0
  7. uint16_t pin_data; // pin数据, 需要根据pin_map反推按键
  8. uint32_t state; // 1 pressed, 0 release
  9. void* userdata;
  10. }luat_keyboard_ctx_t;
  11. typedef void(*luat_keyboard_irq_cb)(luat_keyboard_ctx_t* ctx);
  12. typedef struct luat_keyboard_conf {
  13. uint16_t port; // 为多keyboard预留,默认为0
  14. uint16_t pin_conf; // 需要启用的pin的掩码
  15. uint16_t pin_map; // 需要启用的pin的输入/输出配置
  16. uint16_t debounce; // 消抖配置
  17. luat_keyboard_irq_cb cb;
  18. void* userdata;
  19. }luat_keyboard_conf_t;
  20. int luat_keyboard_init(luat_keyboard_conf_t *conf);
  21. int luat_keyboard_deinit(luat_keyboard_conf_t *conf);
  22. #endif