请教马老师,关于计算delay()函数时间问题!!!
请问马老师void delayUs(uint t)
{
while(t)
{
t--;
}
}
这个函数里面的delayUs(1)是多少us啊,如何计算呢?我的单片机是ATmega16,晶振是8M 2个方法:
1.在AVR STUDIO中用软件模拟测试时间.
2.找到该函数的汇编代码,根据指令周期计算.
另外,使用开发环境提供的函数,如CVAVR中. 非常感谢马老师!!! winavr可以使用 util/delay.h
有delay_us()函数,很精确。 软件延时使MCU的效率降低,而且使用中断后,软件延时的准确性就谈不上了.因此能不用软件延时就不要使用它.最好使用T/C的硬件做定时器.除非是比较简单的应用或只是需要几个到十几个us以下延时. ji 好的
页:
[1]