您的位置 首页 应用

几个延时子程序

/**************************************延时时间为:8*i+10us要求延时1msi=124时延时为1002us误差2us2msi=249时延时为20…

/**************************************

延时时刻为:8*i+10 us
要求延时1ms i=124时 延时为1002us 差错2us
2ms i=249时 延时为2002us 差错2us
**************************************/

void delay(unsigned char i)
{
for(;i>0;–i);

}

/**************************************
延时时刻为:6*i+11 us
要求延时1ms i=165时 延时为1001us 差错1us
2ms i=331时 延时为1997us 差错3us

**************************************/

void delay(unsigned char i)
{
while(i–);

}

/**************************************
延时时刻为:2*i+5 us

**************************************/

void delay(unsigned char i)
{
while(–i);

}

以上假如加上了n个_nop_(),需将i换为(i+n);

/**************************************
延时时刻为:20us*t+13us
**************************************/
void delay_20us(unsigned int t)
{
unsigned char j;
for(;t>0;t–)
for(j=4;j>0;j–);
}

/**************************************
延时时刻为:50us*t+13us
**************************************/
void delay_50us(unsigned int t)
{
unsigned char j;
for(;t>0;t–)
for(j=19;j>0;j–);
}

/**************************************
延时时刻为:100us*t+13us
**************************************/
void delay_100us(unsigned int t)
{
unsigned char j;
for(;t>0;t–)
for(j=44;j>0;j–);
}

/**************************************
延时时刻为:978count*n+21us
要求延时1ms count=1时 延时为999us 差错1us
2ms count=2时 延时为1977us 差错23us
**************************************/
void delay1ms(int count)
{
int x,y;
for(x=0;x for(y=0;y<120;y++);
}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部