xuyw123 发表于 2008-5-18 14:04:38

请教马老师,关于计算delay()函数时间问题!!!

请问马老师
void delayUs(uint t)
{
while(t)
   {
    t--;
   }
}
这个函数里面的delayUs(1)是多少us啊,如何计算呢?我的单片机是ATmega16,晶振是8M

machao 发表于 2008-5-18 14:16:41

2个方法:
1.在AVR STUDIO中用软件模拟测试时间.
2.找到该函数的汇编代码,根据指令周期计算.

另外,使用开发环境提供的函数,如CVAVR中.

xuyw123 发表于 2008-5-18 14:18:42

非常感谢马老师!!!

zsmbj 发表于 2008-5-18 16:26:51

winavr可以使用 util/delay.h

有delay_us()函数,很精确。

machao 发表于 2008-5-18 16:50:56

软件延时使MCU的效率降低,而且使用中断后,软件延时的准确性就谈不上了.因此能不用软件延时就不要使用它.最好使用T/C的硬件做定时器.除非是比较简单的应用或只是需要几个到十几个us以下延时.

yinhe 发表于 2010-3-9 20:32:49

ji

gsl8828 发表于 2010-7-22 14:48:53

好的
页: [1]
查看完整版本: 请教马老师,关于计算delay()函数时间问题!!!