keil5软件,软件延时时间delay和实际硬件电路延时时间相差太大怎么回事?
因为估算很难。首先,从c语言不能直接知道实际的机器指令,所以无法准确判断时间然后,就算是汇编,知道机器指令,现在的单片机都有流水线,有了流水线,就不好计算了,你很难知道某条指令需要完整的机器周期还是一个时钟周期就完成,很多时候流水线还会被打乱,要是遇到中断,就更复杂了。所以用软件延时,一般只能用在精度不高的场合,先是大概估计个数值,实际运行后根据效果再微调一下