数码之家

 找回密码
 立即注册
搜索
查看: 1240|回复: 6

[C51] 关于硬件延时的的疑问

[复制链接]
发表于 2021-11-21 22:02:27 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 奶瓶_NP 于 2021-11-22 20:13 编辑

用软件延时会造成CPU时间浪费,用硬件延时就可以解决这个问题.
但是如果使用固定定时器时基+标志位/计数位查询的时候,如何设计自定义定时成了个问题,我还没搞明白....

又有说"时钟树"设计法,即定时器只用来作为时基,然后设置一串判断,10毫秒到了我做事件1,20毫秒到了我做事件2...以此类推,但对与流程化编程和自定义延时好像又不是十分方便?
求大神伸出援手



发表于 2021-11-21 22:15:54 来自手机浏览器 | 显示全部楼层
只要它忙得过来,想怎的就怎的,毕竟主程序中都有个while(1){}。
回复 支持 反对

使用道具 举报

发表于 2021-11-21 22:41:02 | 显示全部楼层
不然怎么会有更高级的mcu呢
回复 支持 反对

使用道具 举报

发表于 2021-11-21 23:08:27 | 显示全部楼层
如果需要不精确的延时,累计时基的若干倍就可以了。
回复 支持 反对

使用道具 举报

发表于 2021-11-21 23:08:29 | 显示全部楼层
业余做点小东西基本都是靠性能碾压过去,多传感器多驱动的复杂程序可能需要RTOS才能应付,有的干脆上了winCE 乃至 XP,只做自己的程序,把调度交给windows。也有人开发 串口驱动wifi  串口驱动LCD等, 选一个多串口MCU也就完事了。
回复 支持 反对

使用道具 举报

发表于 2021-11-21 23:42:45 | 显示全部楼层
你如果对定时器初始化延时感到疑惑,那我觉得你还没到需要这么精确定时的时候
回复 支持 反对

使用道具 举报

发表于 2021-11-22 08:17:46 | 显示全部楼层
1、如果MCU大部分时间都是在while(0)内空循环,那就无所谓浪费不浪费了,可以使用软件空循环来定时。但使用定时器不但效率更高,而且更准确、稳定,所以大部分人还是用定时器的,不用白不用嘛。:lol:
2、我也习惯用定时器作为基准,例如定时10ms,在定时器中断内对一个全局变量进行增加,然后在主循环中检查这个变量的值,到了需要的时间执行相应的代码,同时对变量清零,以便进行下一轮计数定时。

打赏

参与人数 1家元 +10 收起 理由
奶瓶_NP + 10 熱心助人

查看全部打赏

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-8 02:01 , Processed in 0.140400 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表