LPC2103之timer0 ang timer1
//匹配控制寄存器
#define T1MCR(*((volatile unsigned short *) 0xE0008014))
匹配控制寄存器用于控制當(dāng)一個匹配寄存器和定時計數(shù)器相匹配時將執(zhí)行什么操作。
位 | 信號 | 描述 | 復(fù)位值 |
0 | MR0I | 寫1時,當(dāng)MR0與TC匹配將產(chǎn)生中斷;寫0關(guān)閉此功能。 | 0 |
1 | MR0R | 寫1時,當(dāng)MR0與TC匹配將會復(fù)位;寫0關(guān)閉此功能。 | 0 |
2 | MR0S | 寫1時,當(dāng)MR0與TC匹配將使PC和TC計數(shù)停止并且TCR[0]拉低(0);寫0關(guān)閉此功能。 | 0 |
3 | MR1I | 寫1時,當(dāng)MR1與TC匹配將產(chǎn)生中斷;寫0關(guān)閉此功能。 | 0 |
4 | MR1R | 寫1時,當(dāng)MR1與TC匹配將會復(fù)位;寫0關(guān)閉此功能。 | 0 |
5 | MR1S | 寫1時,當(dāng)MR1與TC匹配將使PC和TC計數(shù)停止并且TCR[0]拉低(0);寫0關(guān)閉此功能。 | 0 |
6 | MR2I | 寫1時,當(dāng)MR2與TC匹配將產(chǎn)生中斷;寫0關(guān)閉此功能。 | 0 |
7 | MR2R | 寫1時,當(dāng)MR2與TC匹配將會復(fù)位;寫0關(guān)閉此功能。 | 0 |
8 | MR2S | 寫1時,當(dāng)MR2與TC匹配將使PC和TC計數(shù)停止并且TCR[0]拉低(0);寫0關(guān)閉此功能。 | 0 |
9 | MR3I | 寫1時,當(dāng)MR3與TC匹配將產(chǎn)生中斷;寫0關(guān)閉此功能。 | 0 |
10 | MR3R | 寫1時,當(dāng)MR3與TC匹配將會復(fù)位;寫0關(guān)閉此功能。 | 0 |
11 | MR3S | 寫1時,當(dāng)MR3與TC匹配將使PC和TC計數(shù)停止并且TCR[0]拉低(0);寫0關(guān)閉此功能。 | 0 |
15:12 | 保留 |
//匹配寄存器
//匹配寄存器0
#define T1MR0(*((volatile unsigned long *) 0xE0008018))
//匹配寄存器1
#define T1MR1(*((volatile unsigned long *) 0xE000801C))
//匹配寄存器2
#define T1MR2(*((volatile unsigned long *) 0xE0008020))
//匹配寄存器3
#define T1MR3(*((volatile unsigned long *) 0xE0008024))
匹配寄存器的值將不斷的和定時計數(shù)器(TC)的值進(jìn)行比較。當(dāng)二者相等時,相應(yīng)行為將被自動觸發(fā)。該行為可能產(chǎn)生一個中斷、復(fù)位定時計數(shù)器、或者停止定時器。該行為由MCR寄存器的設(shè)置決定。
//捕獲控制寄存器
#define T1CCR(*((volatile unsigned short *) 0xE0008028))
捕獲控制寄存器用于控制四個捕獲寄存器之一是否在捕獲事件發(fā)生時加載定時計數(shù)器值,以及該捕獲事件是否產(chǎn)生中斷。
位 | 信號 | 描述 | 復(fù)位值 |
0 | CAP0RE | 寫1時,捕獲CAPn.0的上升沿,當(dāng)上升沿到來時將導(dǎo)致CR0加載TC值。 | 0 |
1 | CAP0FE | 寫1時,捕獲CAPn.0的下降沿,當(dāng)下降沿到來時將導(dǎo)致CR0加載TC值。 | 0 |
2 | CAP0I | 寫1時,CAPn.0事件中斷,CAPn.0事件將產(chǎn)生中斷。 | 0 |
3 | CAP1RE | 寫1時,捕獲CAPn.1的上升沿,當(dāng)上升沿到來時將導(dǎo)致CR1加載TC值。 | 0 |
4 | CAP1FE | 寫1時,捕獲CAPn.1的下降沿,當(dāng)下降沿到來時將導(dǎo)致CR1加載TC值。 | 0 |
5 | CAP1I | 寫1時,CAPn.1事件中斷,CAPn.1事件將產(chǎn)生中斷。 | 0 |
6 | CAP2RE | 寫1時,捕獲CAPn.2的上升沿,當(dāng)上升沿到來時將導(dǎo)致CR2加載TC值。 | 0 |
7 | CAP2FE | 寫1時,捕獲CAPn.2的下降沿,當(dāng)下降沿到來時將導(dǎo)致CR2加載TC值。 | 0 |
8 | CAP2I | 寫1時,CAPn.2事件中斷,CAPn.2事件將產(chǎn)生中斷。 | 0 |
9 | CAP3RE | 寫1時,捕獲CAPn.3的上升沿,當(dāng)上升沿到來時將導(dǎo)致CR3加載TC值。 | 0 |
10 | CAP3FE | 寫1時,捕獲CAPn.3的下降沿,當(dāng)下降沿到來時將導(dǎo)致CR3加載TC值。 | 0 |
11 | CAP3I | 寫1時,CAPn.3事件中斷,CAPn.3事件將產(chǎn)生中斷。 | 0 |
15:12 | 保留 | NA |
//捕獲寄存器
//捕獲寄存器0
#define T1CR0(*((volatile unsigned long *) 0xE000802C))
//捕獲寄存器1
#define T1CR1(*((volatile unsigned long *) 0xE0008030))
//捕獲寄存器2
#define T1CR2(*((volatile unsigned long *) 0xE0008034))
//捕獲寄存器3
#define T1CR3(*((volatile unsigned long *) 0xE0008038))
每個捕獲寄存器都和器件管腳相關(guān)聯(lián),當(dāng)指定事件發(fā)生在外部管腳上時捕獲寄存器也許要加載定時計數(shù)器值。捕獲控制寄存器的設(shè)置決定是否捕獲功能被使能,并且觸發(fā)事件到底是在關(guān)聯(lián)管腳的上升沿、下降沿或者雙沿(包括上升沿和下降沿)。
//外部匹配寄存器
#define T1EMR(*((volatile unsigned short *) 0xE000803C))
外部匹配寄存器控制外部匹配管腳MAT(0-3),并可以讀出其狀態(tài)。
位 | 信號 | 描述 | 復(fù)位值 |
0 | EM0 | 外部匹配0。該位反映了輸出MAT0.0/MAT1.0的狀態(tài)。當(dāng)TC和MR0匹配時,該定時器輸出可以為高、為低、或者不變。EMR[5:4]控制輸出功能。 | 0 |
1 | EM1 | 外部匹配1。該位反映了輸出MAT0.1/MAT1.1的狀態(tài)。當(dāng)TC和MR1匹配時,該定時器輸出可以為高、為低、或者不變。EMR[7:6]控制輸出功能。 | 0 |
2 | EM2 | 外部匹配2。該位反映了輸出MAT0.2/MAT1.2的狀態(tài)。當(dāng)TC和MR2匹配時,該定時器輸出可以為高、為低、或者不變。EMR[9:8]控制輸出功能。 | 0 |
3 | EM3 | 外部匹配3。該位反映了輸出MAT0.3/MAT1.3的狀態(tài)。當(dāng)TC和MR3匹配時,該定時器輸出可以為高、為低、或者不變。EMR[11:10]控制輸出功能。 | 0 |
5:4 | EMC0 | 外部匹配控制0 | 00 |
7:6 | EMC1 | 外部匹配控制1 | 00 |
9:8 | EMC2 | 外部匹配控制2 | 00 |
11:10 | EMC3 | 外部匹配控制3 | 00 |
15:12 | 保留 | NA |
00——什么都不做
01——清除相應(yīng)的外部匹配位/輸出0
10——置位相應(yīng)的外部匹配位/輸出1
11——Toggle the corresponding External Match bit/output
//計數(shù)控制寄存器
#define T1CTCR(*((volatile unsigned long *) 0xE0008070))
該寄存器用于用于選擇定時器或者計數(shù)器模式,計數(shù)模式下也用于選擇計數(shù)時的管腳和邊沿。
在計數(shù)器模式下,CAP輸入(由CTCR寄存器的bit3:2選擇)在每個PCLK時鐘的上升沿被采樣。在比較CAP的兩個連續(xù)采樣值后,產(chǎn)生以下四個事件中的一個:所選擇CAP輸入的上升沿、下降沿、沿變化、不變化。只有識別出了與CTCR寄存器的bit1:0所選擇的事件相一致時,定時計數(shù)器寄存器將會增1。
實際上外部提供的時鐘運行計數(shù)器有其局限性。PCLK兩個連續(xù)的上升沿僅能用于識別一個CAP選擇輸入的變化沿,CAP輸入頻率不能夠超過PCLK時鐘的一半。所以,在同一個CAP輸入的高或低電平至少必須保持1/PCLK時間以上。
位 | 信號 | 描述 | 復(fù)位值 |
1:0 | Counter/Timer mode | 00——定時器模式,每個PCLK的上升沿到來后PC值加1,或者復(fù)位PC同時TC加1; 01——計數(shù)器模式,由bit3:2選擇的CAP的上升沿到來后TC值加1; 10——計數(shù)器模式,由bit3:2選擇的CAP的下降沿到來后TC值加1; 11——計數(shù)器模式,由bit3:2選擇的CAP的沿變化后TC值加1; | 00 |
3:2 | Count input select | 00——CAP1.0 for Timer1 01——CAP1.1 for Timer1 10——CAP1.2 for Timer1 11——CAP1.3 for Timer1 | 00 |
7:4 | 保留 | NA |
// PWM控制寄存器
#define PWM1CON(*((volatile unsigned long *) 0xE0008074))
位 | 信號 | 描述 | 復(fù)位值 |
0 | PWM enable | 1——MATn.0的PWM模式使能 0——MATn.0由EM0控制 | 0 |
1 | PWM enable | 1——MATn.1的PWM模式使能 0——MATn.1由EM0控制 | 0 |
2 | PWM enable | 1——MATn.2的PWM模式使能 0——MATn.2由EM0控制 | 0 |
3 | PWM enable | 1——MATn.3的PWM模式使能 0——MATn.3由EM0控制 | 0 |
32:4 | 保留 | NA |
評論