LPC 學習筆記之定時器
PC--------預分頻計數(shù)寄存器
PR--------預分頻寄存器
TC--------定時計數(shù)寄存器
MR--------匹配寄存器
TCR-------定時器/計數(shù)器控制寄存器
if(PR == PC)
{
PC = 0;
TC += 1;
}
if{TC == MR}
{
根據(jù)MCR的設置進行相應的動作:
1,定時器產(chǎn)生中斷
2,TC = 0即TC清零
3,停止定時器TC,PC停止,TCR[0] = 0;即停止定時器/計數(shù)器。
}
LPC中的定時器只能向上計數(shù),即從0開始計數(shù)。
PC每個PCLK 周期加1 。當其值到達預分頻寄存器中保存的值時,定時器計數(shù)器 TC加1 ,預分頻計數(shù)器在下個PCLK 周期復位。例如,當PR=0 時,定時器計數(shù)器每個 PCLK 周期加1 ,當 PR=1 時定時器計數(shù)器每 2 個PCLK 周期加1 ,以此類推。
根據(jù)文檔描述“當PR=0 時,定時器計數(shù)器每個 PCLK 周期加1”這說明對PCLK進行了分頻,這就說明了PR為什么叫做預分頻寄存器的原因了。但是如果定時器的PCLK是24MHz的,按理說PR=0時,應是12MHZ,但是從示波器上來看好像不是不知為什么?但是對于毫秒的定時,按照文檔說明的推理和現(xiàn)實示波器的測了是準確無誤的。
定時時間 = PCLK / (2PR); 為什么乘2呢?是因為分頻的原因,不要忘記當PR=0時也是有分頻作用的哦!
評論