定时器控件
1. 属性
属性 |
说明 |
|---|---|
id |
控件ID号,不可更改 |
global |
勾选:作用于全局,不勾选:作用于所在页; 不可脚本读写 |
name |
控件名称,可改,默认名称timer+序号 |
en |
使能,不选中,失效;选中,有效。 |
interval |
定时器信号发生间隔。 |
2. 示例
2.1 在脚本中访问属性(控件名以timer0为例)
2.1.1 设置定时器使能(timer0.en)
例如 打开定时器
timer0.en = 1;//1:打开 0:关闭
2.1.2 设置定时器间隔事件(timer0.interval)
例如 设置定时器间隔200ms
timer0.interval = 20; //定时器间隔单位为10ms即当设置20时实际间隔为200ms
2.1.2 设置定时器间隔事件(timer0.global)
勾选global |
打开定时器后,工程全局运行 |
|---|---|
不勾选global |
打开定时器后,只在控件所在页面运行,跳转到其他页面,则不运行 |
3. 常见应用
备注
定时器控件运行原理:打开定时器后,以设置的时间间隔,循环运行定时器控件内的脚本
3.1 屏幕需要主动轮询读取下位机数据时
//使用modbus协议时,定时循环读取从机数据
Return = modbusRead(0x01,0x03,0x0000,6,50);
if(Return == 0) //检测返回值,返回值为0,表示读取成功
{
//处理从机返回的数据
}
//定时循环外发自定义数据帧
byte a[8] = {0xAF, 0xFA, 0x01, 0x02, 0x03, 0x04, 0x05, 0xDD};
uartSendBytes(a,0,8);
3.2 配合图片控件,循环切换图片,实现gif效果
if(image1.img == user.image.p1)
image1.img = user.image.p2;
else if(image1.img == user.image.p2)
image1.img = user.image.p3;
else if(image1.img == user.image.p3)
image1.img = user.image.p4;
else if(image1.img == user.image.p4)
image1.img = user.image.p1;
3.3 延时处理
//例如 当满足某一条件后,延时2S跳转页面
//将定时器interval属性设置为200
if(text.txt == "ok")
{
timer.en = 1;//打开,定时器会在2S后执行定时器内的脚本
}
//定时器内脚本
showPage(2);
timer.en = 0;//延时处理完成,关闭定时器,不关闭则会一直间隔2S循环执行 showPage(2); 脚本
3.4 RTC,定时读取时间系统变量,获取实时时间,仅支持RTC版本可用 参考例程
3.5 制作音视频进度条,定时获取播放进度显示到进度条
//定时器控件interval属性设置100,当触发视频播放时(比如播放按钮下),打开定时器
timer.en = 1;
//定时器内脚本,读取视频控件的播放进度属性,赋值给进度条控件显示
progressbar3.val = video2.progress;
if(progressbar3.val >= 100)
{
timer.en = 0;//根据视频播放进度判断,视频播放完后,关闭定时器
}
3.6 数值读秒累加、递减
//将定时器interval属性设置100,即1S执行一次,并勾选en,让定时器一直运行
//累加
num1.val++;
//递减
num2.val--;