Air202学习 二 (定时器使用)

AIR202定时器使用

1.  air202控制继电器原理图:

     使用air202的GPIO4~GIO7控制4路继电器

Air202学习 二 (定时器使用)_第1张图片

Air202学习 二 (定时器使用)_第2张图片

 

2.  模块实现功能

使用一个循环定时器, 每隔5秒打印一次  print("TIM function test")  并在定时器的回调函数中打开继电器,  然后上电后正常运行       30秒后,通过软件复位重启模块 

模块默认的是main.lua文件,在文件中加载其他控制文件

Air202学习 二 (定时器使用)_第3张图片

tim.lua文件

Air202学习 二 (定时器使用)_第4张图片

3.  硬件方面查看下继电器的状态指示灯:

Air202学习 二 (定时器使用)_第5张图片

4 .   看下串口打印效果

Air202学习 二 (定时器使用)_第6张图片

使用函数print()打印信息时, 是通过下载程序的串口输出的, 这个串口主要用于下载程序和查看程序运行状态输出信息的(HOST_UART)

 

5.  有关定时器的函数在sys.lua库文件中

模块名称:程序运行框架
模块功能:初始化,程序运行框架、消息分发处理、定时器接口

Air202学习 二 (定时器使用)_第7张图片

模块有关定时器操作的函数:

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文件结束

看先串口打印信息

Air202学习 二 (定时器使用)_第8张图片

 

 

 

 

你可能感兴趣的:(Air202学习)