[经验分享] 单片机延时问题20问

[复制链接]
明日视界 发表于 2025-6-17 22:42 | 显示全部楼层
要测量延时,可以先给I/O口设高电平,启动延时,然后转为低电平,使用示波器测高电平时长,这时长就是延时。
kkzz 发表于 2025-6-18 20:39 | 显示全部楼层
可以通过调整定时器初值或者循环次数来实现延时函数的精度调整。
qiufengsd 发表于 2025-6-18 21:16 | 显示全部楼层
用定时器中断校准延时              
nomomy 发表于 2025-6-19 21:35 | 显示全部楼层
用循环或空指令(如_nop_()),占用CPU,精度受编译器优化影响。
loutin 发表于 2025-6-19 22:25 | 显示全部楼层
如果用循环语句实现的循环,没法计算,但可以通过软件仿真看到具体时间。精确延时一般需要用到定时器,延时时间与晶振有关。
modesty3jonah 发表于 2025-6-20 09:20 | 显示全部楼层
延时通过控制处理器执行指令的时间实现。每条指令需固定时钟周期,利用循环或定时器累积执行时间。
wangdezhi 发表于 2025-6-20 10:10 | 显示全部楼层
延时函数能否嵌套调用              
vivilyly 发表于 2025-6-20 12:57 | 显示全部楼层
定时器通过设置初值和中断来实现精确延时。例如,设置定时器初值TH0=0x3c、TL0=0xb0,可以实现50ms的中断。
pmp 发表于 2025-6-20 13:28 | 显示全部楼层
中断会打断延时,导致时间不准确。
jonas222 发表于 2025-6-20 14:00 | 显示全部楼层
改用非阻塞延时              
tifmill 发表于 2025-6-20 15:00 | 显示全部楼层
延时的本质是指令执行时间的累加。单片机每条指令耗时由晶振频率决定
plsbackup 发表于 2025-6-20 17:29 | 显示全部楼层
晶振实际频率与标称值可能存在偏差。
benjaminka 发表于 2025-6-20 17:53 | 显示全部楼层
优化代码结构,减少无效等待。              
averyleigh 发表于 2025-6-20 18:48 | 显示全部楼层
如何提高延时精度              
mollylawrence 发表于 2025-6-20 19:31 | 显示全部楼层
延时期间无法响应中断或执行其他任务。
alvpeg 发表于 2025-6-20 20:08 | 显示全部楼层
使用volatile关键字防止循环被优化。
hilahope 发表于 2025-6-20 20:39 | 显示全部楼层
如何测量延时的实际精度              
mattlincoln 发表于 2025-6-20 21:15 | 显示全部楼层
有没有比延时函数更好的方案              
maqianqu 发表于 2025-6-20 21:50 | 显示全部楼层
结合NOP指令(如_nop_();)填充固定周期。
lzbf 发表于 2025-6-21 10:49 | 显示全部楼层
为什么软件延时精度低?              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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