单片机delay函数延迟时间计算,delay(80);为什么是600us左右?
答案:1 悬赏:50
解决时间 2021-01-22 01:32
- 提问者网友:听门外雪花风
- 2021-01-21 08:23
单片机delay函数延迟时间计算,delay(80);为什么是600us左右?
最佳答案
- 二级知识专家网友:詩光轨車
- 2021-01-21 09:01
只有汇编语言才能得到精确的时间。C编译成汇编时,不同的编译器,不同的编译策略都会使最终的程序不一样。
如果短时间的延时,可以利用_nop_()来控制,如果是长时间的可以用定时器中断来控制。
你自己写函数的话,可以在KEIL调试模式下,单步运行,看左侧窗口中的second,那个是程序从复位到当前的运行秒数(可以看到微妙级的),用不同的参数调用delay,比较下,记住差值就可以了。别忘了把项目使用的晶振数填正确。
如果短时间的延时,可以利用_nop_()来控制,如果是长时间的可以用定时器中断来控制。
你自己写函数的话,可以在KEIL调试模式下,单步运行,看左侧窗口中的second,那个是程序从复位到当前的运行秒数(可以看到微妙级的),用不同的参数调用delay,比较下,记住差值就可以了。别忘了把项目使用的晶振数填正确。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯