Micro:bit杂烩课。
大众好,我是于老师。今天下午在录课的时候发掘一个问题,重点是关于这个模块的运用办法。这一个模块能够设定每隔一段时间执行里面的程序,然则运行的规则我觉得还需要深入的去讲解一下。
为了说明问题,我先写了这一段程序。当开机时,数码管表示数字六,每隔六秒钟表示数字六百。先将程序下载,程序下载以后复位microbeat,能够看到microbeat始终表示的是六百,并无看到六。亦便是这一段指令和这一个程序貌似是同期进行的,并不是开机以后六秒钟以后再起始执行这段程序。
倘若画一个时间轴,就应该是这般的。假设这是开机时零秒,六秒的时候,在这儿这一部分是开机时执行的程序,便是这个模块的程序画的不足标准,把它改一改。可能有一段时间起始要执行一段时间,从这个时候起始,从这儿起始要执行完,到这个时间点执行完。
这一段程序到底是在这一个时间点执行,还是接着在后面这个时间起始执行还不清楚。为了说明问题,我给它加了有些延时,把它放在这儿。程序运行以后表示数字六,播放一个声音提醒,接着再等待五百毫秒。能够把时间设长一点,设置一毫秒。全部程序在执行过程中可能会运用大概一秒多时间,假设便是在这个一秒上下结束。
倘若程序运行以后只能看到六百,全部过程都只能看到六百,看不到数字六,证明这个程序适合开机时,这个模块的程序是同期执行的。倘若先看到数字六,一秒以后再看到六百,就证明这一个按时模块实质上是在开机时模块执行完毕以后才执行的。
此刻下载程序,复位一下程序,能够看到数字六,并且有一个声音,再来一秒钟以后表示的是六百。这就印证了刚才的假设,实质上这一个模块是在开机模块执行完毕以后才起始执行的。这儿是第1次运行的时间起点,既不是和开机时模块同期执行的,亦不是在第1个六秒的时候执行的。因此大众在运用的时候要重视它的运用办法。
|