您的位置 首页 ADAS

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

在用单片机IO口模拟总线时序时老是碰到问题,自己总结了一下大多数是因为我们的延时不准确造成的,所以自己调了两个延时函数,我板子上用的是A

在用单片机IO口模仿总线时序时老是碰到问题,自己总结了一下大多数是因为咱们的延时不精确形成的,所以自己调了两个延时函数,我板子上用的是AT Mega128的单片机和16MHz的晶振,用示波器看了这两个函数发生的波形还挺精确的,期望我们能用得上 ^_^

//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);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/257904.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部