#ifndef _DELAY_1M_H
#define _DELAY_1M_H
//********************************************************************
/*函 数 名:delay_us
建立日期:2010年1月28日
编译环境:ICCAVR7.16A
函数作用:微秒级的延时程序
说 明:1M晶振下
********************************************************************/
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);
void delay_1us(void) //1us延时函数,实测8us
{
asm(“nop”); //1时钟周期
}
void delay_3us(void) //3us延时函数,实测8us
{
asm(“nop”);
}
void delay_10us(void) //10us延时函数,实测9us
{
asm(“nop”);
asm(“nop”);
}
void delay_50us(void) //47us延时函数
{
delay_10us();
delay_10us();
delay_10us();
delay_10us();
delay_10us();
}
void delay_100us(void) //96us延时函数
{
delay_50us();
delay_50us();
}
void delay_n100us(unsigned char n100us)//几百us延时
{
while(n100us--)
delay_100us();
}
/*delay_n100us(2); // 224us
delay_n100us(3); // 326us
delay_n100us(4); // 428us
delay_n100us(5); // 530us
delay_n100us(6); // 632us
delay_n100us(7); //734us
delay_n100us(8); // 836us
*/
void delay_1ms()
{
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
delay_100us();
}
/********************************************************************
函 数 名:Delay_ms
建立日期:2010年1月28日
修改日期:
函数作用:毫秒级的精确延时程序
说 明:
********************************************************************
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !