LPC 学习笔记之定时器
时间:11-11
来源:互联网
点击:
对LPC定时器与时间相关的寄存器有PC,PR,TC,MR。
PC--------预分频计数寄存器
PR--------预分频寄存器
TC--------定时计数寄存器
MR--------匹配寄存器
TCR-------定时器/计数器控制寄存器
if(PR == PC)
{
PC = 0;
TC += 1;
}
if{TC == MR}
{
根据MCR的设置进行相应的动作:
1,定时器产生中断
2,TC = 0即TC清零
3,停止定时器TC,PC停止,TCR[0] = 0;即停止定时器/计数器。
}
LPC中的定时器只能向上计数,即从0开始计数。
PC每个PCLK 周期加1 。当其值到达预分频寄存器中保存的值时,定时器计数器 TC加1 ,预分频计数器在下个PCLK 周期复位。例如,当PR=0 时,定时器计数器每个 PCLK 周期加1 ,当 PR=1 时定时器计数器每 2 个PCLK 周期加1 ,以此类推。
根据文档描述“当PR=0 时,定时器计数器每个 PCLK 周期加1”这说明对PCLK进行了分频,这就说明了PR为什么叫做预分频寄存器的原因了。但是如果定时器的PCLK是24MHz的,按理说PR=0时,应是12MHZ,但是从示波器上来看好像不是不知为什么?但是对于毫秒的定时,按照文档说明的推理和现实示波器的测了是准确无误的。
定时时间 = PCLK / (2PR); 为什么乘2呢?是因为分频的原因,不要忘记当PR=0时也是有分频作用的哦!
LPC定时 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)