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