在学嵌入式的时候 ,碰到以下延时函数,不太理解,求高手解答,不胜感激!给我讲明白者追加分···

[复制链接]
查看11 | 回复2 | 2011-2-17 10:42:24 | 显示全部楼层 |阅读模式
一种最原始,最没有效率的延时程序。在调用这个延时程序时,CPU将在while(time--){}这个循环处不停的等待,直到time减到零,标志着延时结束。程序也随之退出。从函数第一句开始,直到while循环语句之前,都属于定时器配置。通过注释可以看出,使用了定时器3。由于不知道单片机的型号,只能做一个通用的解释。看懂这一解释的基础是你知道单片机定时器的配置方法和工作原理。首先,表示时间的变量time不是时间单位,并不表示毫秒或者秒,他代表了延时多少个脉冲。而变量val也是脉冲,他定义了一个定时器工作周期所经过的脉冲数。单个脉冲表示的时间间隔则通过单片机工作频率计算出来。比如说,单片机的频率为10mHz,那么每个脉冲的时间就是1uS(假设分频电路...
回复

使用道具 举报

千问 | 2011-2-17 10:42:24 | 显示全部楼层
这是利用定时器3的计数功能来延时的程序void Delay(int time){ U32 val = (PCLK>>3)/1000-1;rTCFG0 &= ~(0xff<<8); rTCFG0 |= 3<<8; //prescaler = 3+1 rTCFG1 &= ~(0xf<<12); rTCFG1 |= 0<<1...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行