1,Delay1ms unsigned int ifori0i500i中是什么意思

关于C语言的延时时间问题 不能正确计算得出 只有汇编语言可以得出用仿真器对程序进行仿真 可以得到具体该延时的执行时间 比如ARM 中的 J_LINK
这个延时是个大概时间,原理是根据cpu频率/指令速度 来估计的。 s=2000的话,只是说执行2遍for,每个for循环2000次,一个for循环指令次数为: i=0 i<s i++ i<s i++ i<s .......... 一般处以cpu频率,推导出大概延时多少。

Delay1ms unsigned int ifori0i500i中是什么意思

2,有一延时子程序void delayunsigned int k 后面调用时有

你使用的是单片机程序吗?具体延长时间和使用的晶体相关。51单片机执行一次加法,需要一个机械周期,即12个时钟脉冲,设延迟时间是T,那么T=K*(晶体频率)/12us,其中,晶体频率单位为Mhz。如:晶体频率为12MHz,delay(1)延迟1us,delay(85)延迟85us. Ps:c语言写单片机延时程序,精确度极低,不如用汇编语言写。
跟cpu执行的速度有关,谢谢采纳
延时时间跟运行速度有关k次循环,while(n<k)谁知道分别延时多少呢

有一延时子程序void delayunsigned int k 后面调用时有

3,void delay1uint x i forixi0i 延时多少

void delay(uint t)//参数是无符号整形,时间不可能为负数 register uint bt;//定义无符号整形,放在寄存器里,存取速度较快,平时都是放在内存里for(;t;t--) //通过执行佛如循环来消耗时间for(bt=0;bt<255;bt++);}
如:delayms(5);则耗时为5*120个指令周期,如果你的指令周期就是你的系统时钟(12000000hz)那么时间为1/12000000*5*120 这只能是大概的算。不过应该能满足你的延时要求了。精准的话建议用汇编

void delay1uint x  i forixi0i  延时多少

4,C语言delay函数延时计算

你 的程序有问题额。 void daly() {unsigned char j; for(j=60;j〈=0;j--) } 你可去看看单片机的时钟信号产生电路中的有关 节拍:指振荡脉冲周期 状态:振荡脉冲尽过2分频后,就是单片机时钟信号的周期,定义为状态,一个状态等于两个节拍 机器周期:单片机采用定时控制方式,有固定的机器周期,一个机器周期等于6个状态, 机器周期=6个状态=12个节拍 当振荡脉冲频率为12Mhz时,一个机器周期为1微秒,振荡脉冲频率为6Mhz,一个机器周期为2微秒 数据类型中unsigned char为无符号字符型值域是在0~~~255范围里 在上面我设的是60次的循环,且晶振是约在12mhz,那么可以看出我们的算值是用60x1微秒,即可得到我们所要的延时值啊

文章TAG:delay1是延时多少延时  多少  unsigned  
下一篇