Air202学习 二 (定时器使用)

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

看先串口打印信息

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值