gpio_irqcount_task.lua 945 B

1234567891011121314151617181920212223242526272829
  1. --[[
  2. @module gpio_irqcount_task
  3. @summary GPIO中断计数功能
  4. @version 1.0
  5. @date 2025.10.21
  6. @author 拓毅恒
  7. @usage
  8. 本文件为GPIO中断计数功能的代码示例,核心业务逻辑为:
  9. 1. 配置GPIO5为中断计数模式,用于统计外部信号触发次数
  10. 2. 每1秒读取并打印一次中断触发次数
  11. 3. 可用杜邦线轻触3.3V电源正极,即可观察中断触发效果。
  12. ]]
  13. -- 配置gpio5为中断计数模式
  14. -- 设置好后系统会自动记录中断触发次数。
  15. local gpio_pin = 5
  16. -- gpio.setup(gpio_pin, gpio.count, gpio.PULLUP, gpio.FALLING)
  17. gpio.setup(gpio_pin, gpio.count)
  18. -- 每隔1S统计一次中断触发的次数
  19. local function countIrq()
  20. while true do
  21. sys.wait(1000)
  22. -- 返回从上次调用该函数后到当前时刻的中断触发次数
  23. log.info("irq cnt", gpio.count(gpio_pin)) -- 调用函数时会自动清空中断累计值
  24. end
  25. end
  26. sys.taskInit(countIrq)