ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1.16. Timer模块

2022-07-24 11:31:35  阅读:157  来源: 互联网

标签:1.16 定时器 Timer 硬件 tim 模块 tc


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技术。

标签:1.16,定时器,Timer,硬件,tim,模块,tc
来源: https://www.cnblogs.com/horal/p/16514121.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有