LPC2103學習之定時器0和定時器1
為什么把這兩個定時器放到一起,因為它們都是32位的定時器,它們除了外設基地址不同外,其他都相同。
說說這兩個定時器的特性
1.兩個32位定時器定時器/計數(shù)器各含有一個可編程的32位預分頻器;
2.計數(shù)器或定時器操作;
3.定時器0有3路、定時器1有4路捕獲通道。當輸入信號跳變時可取得定時器的瞬時值,也可選擇使捕獲事件產(chǎn)生中斷;
4.每個定時器共有4個32位匹配寄存器,匹配時的動作有下面三種:
匹配時定時器繼續(xù)工作,可選擇產(chǎn)生中斷。
匹配時定時器停止工作,可選擇產(chǎn)生中斷。
匹配時復位定時器,可選擇產(chǎn)生中斷。
5.定時器0有3個、定時器1有4個對應于匹配寄存器的外部輸出,匹配時的輸出有如下4種:
匹配時設置為低電平
匹配時設置為高電平
匹配時翻轉
匹配時無動作
6.對于每個定時器,多達4個匹配寄存器可配置為PWM,允許使用多達3個匹配輸出作為單邊沿控制的PWM輸出。
如果接下來就是說一大推寄存器的話,肯定犯困。我開始就是從頭開始看那么多寄存器看的犯暈。但是換個方式,從定時器應用出發(fā),再來細看定時器寄存器,一下子會豁然開朗不少。
就定時器的應用來說,一共有3個。一是單純的作為定時器,二是作為比較匹配。三就是定時器用作捕獲功能。
先看看定時器用作定時功能時寄存器的模塊圖
1.32位定時器TC的計數(shù)頻率由Fpclk經(jīng)過預分頻計數(shù)器得到
2.定時器的啟動/停止、計數(shù)復位由TCR控制
3.需要注意的是,定時器溢出不會產(chǎn)生中斷,定時器的中斷是由捕獲事件或匹配事件引發(fā)的,所以上圖最后那根線是虛線。
再看定時器用作比較匹配時的寄存器框圖
1.定時器的比較匹配功能由寄存器MCR進行控制
2.MR0~3存放的是四路比較匹配通道的比較值
3.當發(fā)生匹配時,按照MCR設置的方法產(chǎn)生中斷或復位TC等
4發(fā)生匹配時,EMR控制匹配引腳輸出——高電平、低電平、引腳電平翻轉等。
最后是定時器用作捕獲功能時寄存器的框圖
1.定時器的捕獲功能由寄存器CCR進行控制
2.通過CCR寄存器,捕獲事件可以設定為上升沿觸發(fā),下降沿觸發(fā)、雙邊沿觸發(fā)
3.通過CCR寄存器,可以設定當捕獲事件發(fā)生時,是否產(chǎn)生中斷
4.CR0~3為4路捕獲寄存器,保存對應的捕獲值
看見以上的定時器的三個功能,操作方法自然也大概明了了:
1.計算定時器的時鐘頻率,設置PR寄存器進行分頻工作
2.若使用匹配功能,則需配置匹配通道的初值及其工作模式;若使用捕獲功能時,需設置捕獲功能相關的寄存器。
3.如果要使用到定時器中斷,則需設置VIC,使能中斷。、
4.最后設置TCR,啟動定時器。
定時器計數(shù)時鐘頻率如下:
計數(shù)時鐘頻率 = Fpclk / (N+1)
N為PR的值
知道一個大概,然后再看具體的寄存器,我是覺得這樣比較好些。
先是寄存器匯總,看看關于定時器0與定時器1總共有多少個寄存器:
下面分類介紹寄存器。先說基本的寄存器:
1.中斷標志寄存器(T0IR、T1IR)
包含4個用于匹配中斷的標志位,4個用于捕獲中斷的標志位。具體描述如下圖,如果有中斷產(chǎn)生,則相應寄存器位置1,否則為0.向相應標志位寫1會清除該中斷標志位,寫0無效。
2.定時器控制寄存器(T0CR、T1CR)
該寄存器用于控制定時器計數(shù)器的操作。
3.定時器計數(shù)器(T0TC、T1TC)
當預分頻的計數(shù)器到達計數(shù)的上限時,32位定時器計數(shù)器TC加1。如下圖所示,如果TC到達計數(shù)上限之前沒有被復位,它會一直計數(shù)到0XFFFFFFFF然后翻轉到0X00000000,該事件不會產(chǎn)生中斷。如果需要,可以用匹配寄存器檢測溢出。
4.預分頻寄存器(T0PR、T1PR)
32位預分頻寄存器指定了預分頻計數(shù)器的最大值
5.預分頻計數(shù)器寄存器(T0PC、T1PC)
預分頻計數(shù)器使用某個常量來控制Pclk的分頻,可實現(xiàn)控制定時器分辨率和定時器溢出之間的關系。預分頻計數(shù)器每個Pclk周期加1,當達到預分頻寄存器中保存的值時,定時器計數(shù)器加1,預分頻計數(shù)器在下個Pclk周期復位。當PR=0時,
定時器計數(shù)器每個Pclk加1,;當PR=1時,定時器計數(shù)器每2個Pclk周期加1,如下圖所示。
下面介紹第二部分寄存器,匹配功能寄存器組。
匹配功能寄存器組包括匹配寄存器、匹配控制寄存器和外部匹配寄存器。其中,匹配寄存器用來存放定時器的匹配值,發(fā)生匹配事件時,匹配控制寄存器用來設置定時器的工作。而外部匹配寄存器則用來設置匹配輸出引腳的動作。
1.匹配寄存器(MR0~MR3)
匹配寄存器連續(xù)與定時器計數(shù)值(TC)相比較,當兩個值相等時,則自動觸發(fā)產(chǎn)生中斷,復位定時器計數(shù)器或停止計數(shù)器,執(zhí)行的動作由MCR寄存器控制。
2.匹配控制寄存器(T0MCR、T1MCR)
控制匹配發(fā)生時定時器進行的操作。
3.外部匹配寄存器(T0EMR,T1EMR)
外部匹配寄存器提供外部匹配引腳MATn.0~MATn.3(n為0或1)的控制和狀態(tài)。當匹配輸出為PWM輸出時,外部匹配寄存器的功能由PWM決定。
下面介紹的是捕獲功能寄存器組
它包括:捕獲寄存器和捕獲控制寄存器。其中捕獲控制寄存器用來設置捕獲信號,發(fā)生捕獲事件時,定時器的計數(shù)值保存到捕獲寄存器中。
1.捕獲寄存器(CR0~CR3)
每個捕獲寄存器都與一個器件管腳相關聯(lián)。當管腳發(fā)生特定的事件時,可將定時器計數(shù)值裝入該寄存器,捕獲控制寄存器的設定決定捕獲功能是否使能以及捕獲事件在管腳的上升沿、下降沿或是雙邊沿發(fā)生。
2.捕獲控制寄存器
功能有:
設置捕獲事件發(fā)生的位置,上升沿,下降沿還是上升沿+下降沿
捕獲事件發(fā)生時,是否產(chǎn)生中斷。
下圖寄存器描述中,n代表定時器的編號0或1,每路捕獲功能,都是由三個位控制的。
最后剩下的就是一些跟定時器0和1有關的其他寄存器
1.計數(shù)控制寄存器(T0CTR、T1CTR)
計數(shù)控制寄存器用來選擇定時模式還是計數(shù)模式,同時在計數(shù)模式下,用來選擇引腳和選擇邊沿計數(shù)(上升沿還是下降沿)
選擇計數(shù)模式后,捕獲輸入引腳(由CTCR[3:2]來選擇)在每個Pclk的上升沿采樣。在比較兩個連續(xù)的捕獲輸入引腳采樣值之后,將會識別為上升沿、下降沿。邊沿的任一種或捕獲輸入引腳的電平有沒有變化。只有CTCR[1:0]設置的事件被識別后,定時計數(shù)器才會增加。
給計數(shù)器提供的外部時鐘有些限制。因為需要連續(xù)兩個Pclk的上升沿才能識別一個捕獲輸入引腳的變化,捕獲輸入引腳的輸入頻率不能超過Pclk的1/2,這種情況下,高/低電平的持續(xù)時間必須不小于1/Pclk。
2.PWM控制寄存器(PWM0CON,PWM1CON)
此寄存器用來控制匹配輸出為PWM輸出。每個匹配輸出可獨立的設置為PWM輸出。對于每個定時器,最多可以選擇3個單邊沿PWM輸出在MATn.2:0上。另外一個匹配寄存器用來決定PWM輸出的周期,當其他任何一個匹配寄存器發(fā)生匹配時,PWM輸出將置為高電平。定時器可被選擇作為PWM周期的匹配寄存器復位。當定時器復位為0時,所有PWM的輸出將會置為低電平。
下面是單邊沿控制PWM輸出的規(guī)則:
1.除了在匹配值為0的情況之外,每個PWM周期的開始,所有控制的PWM輸出為低(此時定時器設置為0)
2.匹配寄存器發(fā)生匹配時,相關的PWM輸出將會置高。如果沒有匹配發(fā)生(例如,匹配值大于PWM周期),PWM輸出將會一直輸出低電平
3.如果匹配寄存器的值大于PWM輸出周期,且PWM的輸出為高電平,則在定時器復位時,PWM輸出將會被清零。
4.如果有一個匹配寄存器的值跟PWM周期值一樣,則在下一個時鐘PWM周期計數(shù)時鐘之后將會復位,因此,一個PWM將由一個時鐘寬度的高電平組成,寬度由PWM的計數(shù)時鐘決定。
5.如果一個匹配寄存器的值為0,則第一次的PWM輸出為高電平。同時在定時器復位之后還將一直保持高電平。
接著說明關于定時器的中斷。
LPC2103有兩個32位定時器,每個定時器可以產(chǎn)生8種類型的中斷。4路匹配中斷、4路捕獲中斷,可以讀取中斷標志寄存器(TnIR)來區(qū)分中斷類型。下圖是定時器中斷與向量中斷控制器(VIC)的關系
1.匹配中斷
LPC2103定時器溢出不會產(chǎn)生中斷,但匹配可以產(chǎn)生中斷。每個定時器都有4個匹配寄存器,存放匹配值。當定時器的計數(shù)值TC等于MR時,就可以產(chǎn)生中斷。切寄存器TnMCR控制匹配中斷的使能。下圖就是以定時器0為例的匹配中斷說明:
2.捕獲中斷
當定時器的捕獲引腳CAP上出現(xiàn)特定捕獲信號時,可以產(chǎn)生中斷。下圖以CAP0.0為例說明:
以上就是定時器0和定時器1的全部內(nèi)容了,感覺LPC2103的定時器還是蠻強大的。下來做個簡易的頻率計鞏固這節(jié)的知識。
參考《EasyARM2103教材》
評論