51单片机怎么使用定时器实现延时功能?

2019-10-14 20:30发布

    QQ截图20170304094031.png 这个是每发送一次数据就要延时一段时间的,现在这个延时是用for实现的,一直让mcu在死等待,这个延时怎么用定时器实现?30ms后一定要回到这里执行下一个发送数据语句,这个是for循环,也不能跑出去吧?有什么办法可以实现这个延时功能?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
复杂
1楼-- · 2019-10-16 00:03
把延时改为你要运行的函数,用函数来消耗时间,这样就没有空闲了。
xyl210xyl
2楼-- · 2019-10-16 00:57
单模先声 发表于 2017-3-4 13:55
不是写0x00,这只是一个比如。大循环里有好多函数一直在循环,这个延时是其中一个函数里面的,在延时这段 ...

配置定时器进中断咯
xyl210xyl
3楼-- · 2019-10-16 04:38
正点原子 发表于 2017-3-4 12:11
我就想问你,不死等的时候,你做什么去?  难道写数据0X00?如果这样,你何必加延时?

有道理
天冰天降
4楼-- · 2019-10-16 05:20
xyl210xyl 发表于 2017-3-7 09:03
配置定时器进中断咯

这个是正解,类似串口TI发送中断,判断发送字节数,或者结束符,来决定是指针下移还是结束发送。
wmaxwell
5楼-- · 2019-10-16 07:56
 精彩回答 2  元偷偷看……
xyl210xyl
6楼-- · 2019-10-16 08:52
还有,收发用  起始 结束标志去判断从来就是不合理的 ,错误数据怎么办 ,中断能实现非阻塞收发,也能实现简单任务切换

一周热门 更多>