设置定时器定时值

支持芯片: SHMICTRL系列芯片 ESP32-S3系列

void settimer(int ts)
//ts: 时间,单位10ms  =0表示关闭定时器

示例

settimer(100); //定时1秒 100*10ms=1000ms=1s

注意

时间轴 情况
0ms 设置定时器20,即200ms
200ms时 定时值到达,系统绘制界面busy; 未响应定时器事件
220ms 相应定时器事件,定时器事件中未使用settimer从新设置
400ms 定时值到达,注意不是420ms才到达

实际案例

由于settimer函数没有在参数中指定是哪一个控件,因此默认为设置当前控件的定时器参数,但是由于页面内控件的继承导致当前控件可能被重新指定,因此这个需要编程时注意;比如下例:


//界面中有s3 s4 两个按钮
void s3.onclick()
{
    s4.show();  //此时,在s3的事件中调用s4的方法
    settimer(50); //此时当前控件指的是s4,而不是s3,因此设置的是s4的定时器的值  
}

void s3.ontimer()
{
    echo("S3");
}
void s4.ontimer()
{
    echo("S4");
}

本代码的运行结果会不断的显示S4S4S4S4S4......这个字符串,因此是s4的定时器发生作用;因此请注意,解决办法可以将settimer放在s4.show()之前,或者再调用一个s3的空方法也可以;