您的位置:首页 > 编程语言

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

2011-03-29 16:35 260 查看
嵌入式编程经验之延迟函数

通常有两种方法来实现延迟函数,第一种用for循环实现,另一方法就是用定时器实现。
for循环实现的延迟函数常用于不精确的延迟,大概的意思。
定时器方式延迟能够实现精确的延迟。

for循环实现延迟
void delay1ms(int time)
{
unsigned int i;
while(time--)
for(i=0; i<124; i++);//124不同的系统对应的值不同
}

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

递增式:
void time10ms_isr(void)
{
time10ms++;
}

void delay10ms(int time)
{
time10ms = 0;
while (time10ms < time);
}

递减式:
void time10ms_isr(void)
{
if(time10ms) time10ms--;
}

void delay10ms(int time)
{
time10ms = time;
while (time10ms);
}

延迟应用
int main()
{
delay10ms(100);//100个10ms相当于延迟1s
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: