打印
[范例教程]

定时器产生指定延迟的delay函数

[复制链接]
楼主: vivilyly
手机看帖
扫描二维码
随时随地手机跟帖
21
tabmone| | 2023-10-17 18:52 | 只看该作者 回帖奖励 |倒序浏览
为了提高延时函数的效率,你可以考虑使用中断服务程序(ISR)来减少主程序的运行时间。此外,你还需要注意代码的其他部分,确保它们不会对延时函数产生影响。

使用特权

评论回复
22
kmzuaz| | 2023-10-17 19:09 | 只看该作者
根据定时器计数的位数和时钟频率,需要计算出定时器溢出时间,以便在延迟时避免溢出。

使用特权

评论回复
23
sanfuzi| | 2023-10-17 19:52 | 只看该作者
需要在其他单片机上实现类似的功能,请查阅相应单片机的文档,了解如何配置定时器和实现延时功能。

使用特权

评论回复
24
chenjun89| | 2023-10-17 19:53 | 只看该作者
利用定时器可以设计一个软件定时器

使用特权

评论回复
25
pentruman| | 2023-10-17 20:23 | 只看该作者
使用_nop_()函数(空操作,执行时间为 1 个机器周期)来实现延时。

使用特权

评论回复
26
wengh2016| | 2023-10-17 20:44 | 只看该作者
使用循环结构来控制定时器的计数器,以达到延迟的效果。

使用特权

评论回复
27
xiaoyaodz| | 2023-10-17 20:53 | 只看该作者
在使用定时器前,需要先配置定时器的工作模式和计数初值。

使用特权

评论回复
28
vivilyly|  楼主 | 2023-10-17 21:17 | 只看该作者
在编写程序时需要考虑系统时钟频率对定时器的影响

使用特权

评论回复
29
1988020566| | 2023-10-17 21:25 | 只看该作者
在使用定时器时,需要配置定时器的工作方式、计数范围和溢出中断等相关参数。

使用特权

评论回复
30
pl202| | 2023-10-17 21:56 | 只看该作者
在delay函数中,需要通过EA和ET0寄存器的设置来关闭定时器0的中断。否则,当定时器0溢出时,会导致中断被触发,从而影响程序的执行。

使用特权

评论回复
31
wwppd| | 2023-10-17 22:09 | 只看该作者
在使用定时器实现延迟时,需要使用循环等待的方式,以便在等待时间结束后执行相应的操作。

使用特权

评论回复
32
tabmone| | 2023-10-17 22:35 | 只看该作者
使用51单片机定时器实现指定延迟需要注意计算定时器溢出时间、处理定时器溢出标志位、考虑单片机时钟频率、注意延迟精度和采用循环等待等方式。

使用特权

评论回复
33
mnynt121| | 2023-10-17 22:48 | 只看该作者
延时函数的主要目的是通过执行无意义指令来达到延时的目的

使用特权

评论回复
34
gygp| | 2023-10-18 19:34 | 只看该作者
经常需要使用延时函数来实现不同的功能

使用特权

评论回复
35
uytyu| | 2023-10-18 20:04 | 只看该作者
在delay函数中,需要通过TMOD寄存器的设置来指定定时器的初值。例如,如果要产生1毫秒的延迟,需要将TMOD寄存器的TH0和TL0两位分别设置为0xFC和0x66。

使用特权

评论回复
36
tpgf| | 2023-11-1 09:48 | 只看该作者
这样做 岂不是每次都要对寄存器进行计算吗

使用特权

评论回复
37
nawu| | 2023-11-1 11:59 | 只看该作者
感觉这样做的效率不是很高啊

使用特权

评论回复
38
aoyi| | 2023-11-1 12:32 | 只看该作者
不需要重复赋值的就不要放在循环体里边了

使用特权

评论回复
39
zljiu| | 2023-11-1 12:55 | 只看该作者
这个指定的延迟时间最大能达到多少呢

使用特权

评论回复
40
tfqi| | 2023-11-1 13:33 | 只看该作者
这种最好使用中断的模式比较好一点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则