posts - 33,  comments - 1,  views - 48511
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1.16.1. 介绍

Esp32内置4个硬件定时器。对于需要精确定时的场合,硬件定时器是必然的选择。

1.16.2. 基础测试

Machine模块下的Timer模块,支持对4个硬件定时器的操作,命令行模式下,运行效果如下所示:

wps56

源代码:

复制代码
 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技术。

posted on   史久超  阅读(189)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
知识改变命运
点击右上角即可分享
微信分享提示