用定时器写us延时函数,不懂其中的计算过程,求助
时间:10-02
整理:3721RD
点击:
一直以来对定时计数器就搞不清楚,想这次彻底搞懂,主要是不懂怎么计算,下面这段程序while中不知道是干嘛的,求助!
void Delay_us(unsigned int k)
{
T1CNTL=0;
T1CNTH=0;
T1CC0L = 32;
T1CC0H = 0x00;
T1CTL = 0x02; //模,从0x0000到T1CC0反复计数。
while(k)
{
while(!(T1CNTL >= 25));
k--;
}
T1CTL = 0x00;
}
void Delay_us(unsigned int k)
{
T1CNTL=0;
T1CNTH=0;
T1CC0L = 32;
T1CC0H = 0x00;
T1CTL = 0x02; //模,从0x0000到T1CC0反复计数。
while(k)
{
while(!(T1CNTL >= 25));
k--;
}
T1CTL = 0x00;
}
好好看书
你没想法,别人也帮不了你
简单来讲 k 是 while 循环的次数 所以 外面的while 是在计算的单位次数, 内部的while 是在读取timer1 的计算器低位
但是感觉这个不是中断控制阿, 是通过反复读计算器来实现delay的
定时器函数还是比较好理解的啊,楼主的思路有点乱。
定时器函数还是比较好理解的啊,楼主的思路有点乱。
这程序也是6,啰里啰嗦的