新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ATmega128(ICC7.22 “delay.h“)

ATmega128(ICC7.22 “delay.h“)

作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
//********************************************************************

/*函 數(shù) 名:delay_us
編譯環(huán)境:ICCAVR7.16A
函數(shù)作用:微秒級(jí)的延時(shí)程序
說 明:7.3728M晶振下
********************************************************************/
void delay_1us(void);
void delay_3us(void);
void delay_10us(void);
void delay_50us(void);
void delay_100us(void);
void delay_n100us(unsigned char n100us);
void delay_1ms(void);
void delay_nms(unsigned int nms);
void delay_ns(unsigned char ns);

本文引用地址:http://butianyuan.cn/article/201611/317432.htm


void delay_1us(void) //1us延時(shí)函數(shù),不能連續(xù)調(diào)用,
{
asm("nop"); //1時(shí)鐘周期
asm("nop");
asm("nop");
asm("nop");
asm("nop"); //1T
asm("nop");

}
void delay_3us(void) //3us延時(shí)函數(shù),,可重復(fù)調(diào)用不影響精度
{

asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}

void delay_10us(void) //10us延時(shí)函數(shù),,可重復(fù)調(diào)用不影響精度
{
delay_3us();
delay_3us();
delay_3us();
}

void delay_50us(void) //48us延時(shí)函數(shù),,可重復(fù)調(diào)用不影響精度
{
delay_10us();
delay_10us();
delay_10us();
delay_10us();
}
void delay_100us(void) //exactly 98us延時(shí)函數(shù),,可重復(fù)調(diào)用不影響精度
{
delay_50us();
delay_50us();
}
void delay_n100us(unsigned char n100us)
{
while(n100us--)
delay_100us();
}
/*delay_n100us(2) 250us
delay_n100us(3) 360us
delay_n100us(4) 470us
delay_n100us(5) 580us
delay_n100us(6) 690us
delay_n100us(7) 800us
delay_n100us(8) 900us 主要是由于函數(shù)聲明及while,,,大概6us

*/
void delay_1ms()
{
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
}
/********************************************************************
函 數(shù) 名:Delay_ms
建立日期:2010年1月28日
修改日期:
函數(shù)作用:毫秒級(jí)的精確延時(shí)程序
說 明:
********************************************************************/
void delay_nms(unsigned int nms)
{
while(nms--)
delay_1ms();
}
void delay_ns(unsigned char ns)
{
while(ns--)
delay_nms(1000);
}



關(guān)鍵詞: ATmega128ICC7.22delay.h

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉