新闻中心

EEPW首页>嵌入式系统>设计应用> AVR单片机微秒级和毫秒级延时函数

AVR单片机微秒级和毫秒级延时函数

作者: 时间:2016-11-26 来源:网络 收藏
在用单片机IO口模拟总线时序时老是碰到问题,自己总结了一下大多数是因为我们的延时不准确造成的,所以自己调了两个延时函数,我板子上用的是AT Mega128的单片机和16MHz的晶振,用示波器看了这两个函数产生的波形还挺准确的,希望大家能用得上 ^_^

本文引用地址://m.amcfsurvey.com/article/201611/321603.htm

//16MHz晶振时间范围:1-65535us

void Delay_us(unsigned int us)
{
unsigned int i;
i = us/2;
i--;
asm("nop"); asm("nop");
for(;i!=0;i--)
{
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");
}

}

//16MHz晶振时间范围:1-65535ms

void Delay_Ms(unsigned int t)
{
for(;t>0;t--)
Delay_us(1100);
}



评论


技术专区

关闭