luat_lib_io_queue.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /******************************************************************************
  2. * io_queue设备操作抽象层
  3. *****************************************************************************/
  4. #ifndef __LUAT_IO_QUEUE_H__
  5. #define __LUAT_IO_QUEUE_H__
  6. #include "luat_base.h"
  7. #ifndef __BSP_COMMON_H__
  8. #include "c_common.h"
  9. #endif
  10. #ifdef __LUATOS__
  11. int l_io_queue_done_handler(lua_State *L, void* ptr);
  12. int l_io_queue_capture_handler(lua_State *L, void* ptr);
  13. void luat_io_queue_init(uint8_t hw_timer_id, uint32_t cmd_cnt, uint32_t repeat_cnt);
  14. void luat_io_queue_capture_start_with_sys_tick(uint8_t pin, uint8_t pull_mode, uint8_t irq_mode);
  15. #else
  16. void luat_io_queue_init(uint8_t hw_timer_id, uint32_t cmd_cnt, uint32_t repeat_cnt, CBDataFun_t *cb);
  17. void luat_io_queue_capture_start_with_sys_tick(uint8_t pin, uint8_t pull_mode, uint8_t irq_mode, CBDataFun_t *cb);
  18. #endif
  19. void luat_io_queue_start(uint8_t hw_timer_id);
  20. void luat_io_queue_stop(uint8_t hw_timer_id, uint32_t *repeat_cnt, uint32_t *cmd_cnt);
  21. void luat_io_queue_clear(uint8_t hw_timer_id);
  22. void luat_io_queue_release(uint8_t hw_timer_id);
  23. void luat_io_queue_set_delay(uint8_t hw_timer_id, uint16_t time, uint8_t sub_tick, uint8_t is_continue);
  24. void luat_io_queue_repeat_delay(uint8_t hw_timer_id);
  25. void luat_io_queue_add_io_config(uint8_t hw_timer_id, uint8_t pin, uint8_t is_input, uint8_t pull_mode, uint8_t level);
  26. void luat_io_queue_add_io_out(uint8_t hw_timer_id, uint8_t pin, uint8_t level);
  27. void luat_io_queue_add_io_in(uint8_t hw_timer_id, uint8_t pin, CBFuncEx_t CB, void *user_data);
  28. void luat_io_queue_capture_set(uint8_t hw_timer_id, uint32_t max_tick, uint8_t pin, uint8_t pull_mode, uint8_t irq_mode);
  29. void luat_io_queue_capture(uint8_t hw_timer_id, CBFuncEx_t CB, void *user_data);
  30. void luat_io_queue_capture_end(uint8_t hw_timer_id, uint8_t pin);
  31. void luat_io_queue_end(uint8_t hw_timer_id);
  32. uint8_t luat_io_queue_check_done(uint8_t hw_timer_id);
  33. int luat_io_queue_get_size(uint8_t hw_timer_id);
  34. void luat_io_queue_get_data(uint8_t hw_timer_id, uint8_t *input_buff, uint32_t *input_cnt, uint8_t *capture_buff, uint32_t *capture_cnt);
  35. void luat_io_queue_capture_end_with_sys_tick(uint8_t pin);
  36. #endif