使用ATmega16A单片机的延时程序是经常遇到的情况,有的时候没有办法准确的确定延时的长度,使用定时器的有太浪费,可以使用这个不太精确的延时程序,适用于各种晶振的情况下,
#define FSOC 8 // //晶振频率宏定义,使用8MHZ晶振,可以使用其他频率的晶振
void Delay_1ms(void)
{
uint i;
for(i=1;i<(uint)(FSOC*124);i++)
{
;
}
}
void Delay_nms(uint n) //延时n*1ms
{
uint i=0;
while(i<n)
{
Delay_1ms();
WDR();//看门狗
i++;
}
}