嵌入式编程经验之延迟函数

来源:互联网 发布:大闹天宫化身6进7数据 编辑:程序博客网 时间:2024/06/14 09:55

嵌入式编程经验之延迟函数

通常有两种方法来实现延迟函数,第一种用for循环实现,另一方法就是用定时器实现。

for循环实现的延迟函数常用于不精确的延迟,大概的意思。

定时器方式延迟能够实现精确的延迟。

for循环实现延迟

void delay1ms(int time)

{

unsigned int i;

while(time--)

for(i=0; i<124; i++);//124不同的系统对应的值不同

}

定时器方式实现延迟
用一timer当做系统时间,它通常都设定为10ms中断一次,然后里面加一counterdelay用的参数,例如在timer中断函式放入(两种方式:递增式和递减式)。

递增式:

void time10ms_isr(void)
{
time10ms++;
}

void delay10ms(int time)

{

time10ms = 0;

while (time10ms < time);

}

递减式:

void time10ms_isr(void)
{
if(time10mstime10ms--;
}

void delay10ms(int time)

{

time10ms = time;

while (time10ms);

}

延迟应用

int main()

{

delay10ms(100);//10010ms相当于延迟1s

}


原创粉丝点击