[范例教程] 定时器产生指定延迟的delay函数

[复制链接]
tabmone 发表于 2023-10-17 18:52 | 显示全部楼层
为了提高延时函数的效率,你可以考虑使用中断服务程序(ISR)来减少主程序的运行时间。此外,你还需要注意代码的其他部分,确保它们不会对延时函数产生影响。
kmzuaz 发表于 2023-10-17 19:09 | 显示全部楼层
根据定时器计数的位数和时钟频率,需要计算出定时器溢出时间,以便在延迟时避免溢出。
sanfuzi 发表于 2023-10-17 19:52 | 显示全部楼层
需要在其他单片机上实现类似的功能,请查阅相应单片机的文档,了解如何配置定时器和实现延时功能。
chenjun89 发表于 2023-10-17 19:53 来自手机 | 显示全部楼层
利用定时器可以设计一个软件定时器
pentruman 发表于 2023-10-17 20:23 | 显示全部楼层
使用_nop_()函数(空操作,执行时间为 1 个机器周期)来实现延时。
wengh2016 发表于 2023-10-17 20:44 | 显示全部楼层
使用循环结构来控制定时器的计数器,以达到延迟的效果。
xiaoyaodz 发表于 2023-10-17 20:53 | 显示全部楼层
在使用定时器前,需要先配置定时器的工作模式和计数初值。
 楼主| vivilyly 发表于 2023-10-17 21:17 | 显示全部楼层
在编写程序时需要考虑系统时钟频率对定时器的影响
1988020566 发表于 2023-10-17 21:25 | 显示全部楼层
在使用定时器时,需要配置定时器的工作方式、计数范围和溢出中断等相关参数。
pl202 发表于 2023-10-17 21:56 | 显示全部楼层
在delay函数中,需要通过EA和ET0寄存器的设置来关闭定时器0的中断。否则,当定时器0溢出时,会导致中断被触发,从而影响程序的执行。
wwppd 发表于 2023-10-17 22:09 | 显示全部楼层
在使用定时器实现延迟时,需要使用循环等待的方式,以便在等待时间结束后执行相应的操作。
tabmone 发表于 2023-10-17 22:35 | 显示全部楼层
使用51单片机定时器实现指定延迟需要注意计算定时器溢出时间、处理定时器溢出标志位、考虑单片机时钟频率、注意延迟精度和采用循环等待等方式。
mnynt121 发表于 2023-10-17 22:48 | 显示全部楼层
延时函数的主要目的是通过执行无意义指令来达到延时的目的
gygp 发表于 2023-10-18 19:34 | 显示全部楼层
经常需要使用延时函数来实现不同的功能
uytyu 发表于 2023-10-18 20:04 | 显示全部楼层
在delay函数中,需要通过TMOD寄存器的设置来指定定时器的初值。例如,如果要产生1毫秒的延迟,需要将TMOD寄存器的TH0和TL0两位分别设置为0xFC和0x66。
tpgf 发表于 2023-11-1 09:48 | 显示全部楼层
这样做 岂不是每次都要对寄存器进行计算吗
nawu 发表于 2023-11-1 11:59 | 显示全部楼层
感觉这样做的效率不是很高啊
aoyi 发表于 2023-11-1 12:32 | 显示全部楼层
不需要重复赋值的就不要放在循环体里边了
zljiu 发表于 2023-11-1 12:55 | 显示全部楼层
这个指定的延迟时间最大能达到多少呢
tfqi 发表于 2023-11-1 13:33 | 显示全部楼层
这种最好使用中断的模式比较好一点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部