1.16.1. 介绍
Esp32内置4个硬件定时器。对于需要精确定时的场合,硬件定时器是必然的选择。
1.16.2. 基础测试
Machine模块下的Timer模块,支持对4个硬件定时器的操作,命令行模式下,运行效果如下所示:
源代码:
1 from machine import Timer 2 3 i=0 4 5 def tc(self): 6 global i 7 print(i) 8 i=i+1 9 10 tim = Timer(0) 11 tim.init(period=1000,mode=Timer.PERIODIC,callback = tc)
注意:period的单位是ms。
1.16.3. 实例
例程描述:要求Led严格安装1Hz的频率闪烁,亮、灭时间各占一半。
需求分析:精确延时500ms,回调函数中翻转LED。
1 from machine import Timer 2 from machine import Pin 3 4 led = Pin(2,Pin.OUT) 5 6 def tc(self): 7 led.value(1-led.value()) 8 9 tim = Timer(0) 10 tim.init(period=500,mode=Timer.PERIODIC,callback = tc)
注意:这与使用while True+sleep函数实现的效果略有不同,定时器是靠硬件实现的,所以单片机执行完后进入等待下一条指令的就绪状态,而while True+sleep函数是靠软件实现的,单片机陷入到循环中无法接受下一条指令,另一个靠硬件实现的技术是PWM技术。
----*----*----*----*----*----*----*----*----*----*----*----
史久超
email:shijiuchao1983@163.com
tel:15999550975 微信同号
qq:157185173 经常不在线,尽量微信
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具