AIR202定时器使用
1. air202控制继电器原理图:
使用air202的GPIO4~GIO7控制4路继电器
2. 模块实现功能
使用一个循环定时器, 每隔5秒打印一次 print("TIM function test") 并在定时器的回调函数中打开继电器, 然后上电后正常运行 30秒后,通过软件复位重启模块
模块默认的是main.lua文件,在文件中加载其他控制文件
tim.lua文件
3. 硬件方面查看下继电器的状态指示灯:
4 . 看下串口打印效果
使用函数print()打印信息时, 是通过下载程序的串口输出的, 这个串口主要用于下载程序和查看程序运行状态输出信息的(HOST_UART)
5. 有关定时器的函数在sys.lua库文件中
模块名称:程序运行框架
模块功能:初始化,程序运行框架、消息分发处理、定时器接口
模块有关定时器操作的函数:
local function TimeTest()
print("TimeTest function test")
end
sys.timer_loop_start(TimeTest,2000) --循环定时器,每隔2秒运行一次 调用函数TimeTest
sys.timer_is_active() --判断某个定时器是否启动
sys.timer_start(TimeTest,30000)--模块启动30s后执行函数 TimeTest 然后停止此循环定时器
sys.timer_stop(TimeTest) --在TimeTest 定时器未执行是停止了该定时器
--[[
sys.timer_stop()表示调用的是sys.lua中的函数timer_stop()
]]
操作定时器源码下载:https://download.csdn.net/download/dianzishi123/10776517
QQ交流群:607064330
定时器另一种测试
tim.lua文件:
module(...,package.seeall)
require "pins" --GPIO操作使用到的库文件 加载
pio.pin.setdir(pio.OUTPUT,pio.P0_5) --设置GPIO5为输出方式
pio.pin.setval(1,pio.P0_5) --GPIO5输出高电平
local Cnt = 0
local function ss()
Cnt = Cnt+1 if Cnt==100 then Cnt =0 end
print("Loop Timer test "..Cnt) --循环打印数据 计数
if Cnt==5 then sys.timer_stop(TimeTest) print("Stop Start Timer") end
end
sys.timer_loop_start(ss,2000) --循环定时器,每隔2秒运行一次 调用函数ss
local function TimeTest()
print("ONE TIMER")
sys.timer_stop(ss) --停止循环定时器
end
sys.timer_start(TimeTest,30000)--模块启动30s后执行函数 TimeTest 然后停止资循环定时器
sys.timer_stop(TimeTest)
--[[
在循环定时器中循环打印Cnt计数,, 因为又启动了一个定时器通过timer_start 启动 在这个定时器的注册函数中
停止了循环定时器,在循环定时器的注册函数中,, 又停止了30s后执行的定时器,所以会一直打印计数累加值
]]
tim.lua文件结束
看先串口打印信息