gpio_irq_count_test.lua 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. --[[
  2. @module gpio_irq_test
  3. @summary GPIO中断计数测试模块
  4. @version 1.0
  5. @date 2025.07.01
  6. @author Jensen
  7. @usage
  8. 使用Air780EGH核心板测试GPIO中断计数功能,主要流程为配置指定PIN脚IO输出1KHz占空比50%的方波波形作为中断信号原,
  9. 通过杜邦线连接到使能中断计数的IO管脚,定时统计中断触发的次数。
  10. ]]
  11. -- 配置GPIO中断检测端口
  12. local irq_io_number = 24
  13. function test_gpio_irq_count_func()
  14. -- PIN引脚16,配置PWM4输出波形,并作为信号源将其通过杜邦线连接到PIN引脚20(GPIO24)
  15. -- 第一参数表示PWM channel4,第二参数表示频率为1000Hz,第三参数表示占空比为50%
  16. pwm.open(4,1000,50)
  17. -- 配置GPIO为中断计数模式, 第二参数为gpio.count表示中断计数模式,
  18. gpio.setup(irq_io_number, gpio.count)
  19. --每隔1S统计一次中断触发的次数
  20. while true do
  21. sys.wait(1000)
  22. log.info("irq cnt", gpio.count(irq_io_number))
  23. end
  24. end
  25. --创建并且启动一个task
  26. --运行这个task的主函数 test_gpio_irq_count_func
  27. sys.taskInit(test_gpio_irq_count_func)