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