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