微控制器的定时器是一个非常重要的硬件资源。
通过对定时器的设定,可实现到达精确时间定时后,产生定时器中断,然后让程序转向执行定时器中断服务函数,定时器中断服务函数执行完毕后,又可以很快的回到刚才中断的主程序中。这对于一些功能的实现是非常重要的,比如:在交通上应用的红绿灯,使用了定时器,来产生精确的定时,实现红绿灯的倒计时。
下面,我们开始讲解怎样用Micropython使用掌控板ESP32的定时器资源。
补充知识:
实质上定时器的使用需要牵扯到微控制器一些控制寄存器的配置,这方面需要阅读相应微控制器的技术文档才能了解到其控制方法,Micropython的开发者们在编写固件的时候,已经把这部分工作做好了,我们作为Micropython的使用者,只需要调用相关的函数即可。但是需要说明的是,如果想使用定时器的很多高级应用,去完成更复杂,更加精细的操作的话,我认为仅仅会使用Micropython去控制硬件是不够的。所以还需要在大学中去细致的学习相关的内容。
学习笔记:
1、使用定时器,需要先将定时器实例化
如:tim1=Timer(1),将定时器1,实例化为对象tim1
2、必须创建定时器服务函数,函数参数中应至少有一个参数,表示定时器的实体
如:def tim1_deal(t): 其中的t就是相当于传递来d定时器实体对象
3、实例化的定时器需要进行初始化
如:tim1.init(period=1000,mode=Timer.PERIODIC,callback=tim1_deal)
参数period表示定时器的定时周期,单位为ms
mode表示定时器的使用模式,有两种:
a.Timer.ONE_SHOT指计时器运行一次
b.Timer.PERIODIC 指定时器循环计时
callback,表示定时器时间到达后,执行的回调函数,即中断服务函数。
4、在定时器的中断服务函数中,尽量缩短代码的数量,保证定时器中断服务函数的快速性。
点赞