<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > LPC2103學(xué)習(xí)之定時(shí)器0和定時(shí)器1

          LPC2103學(xué)習(xí)之定時(shí)器0和定時(shí)器1

          作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
          這兩天學(xué)習(xí)LPC2103的定時(shí)器。開(kāi)始看前面的寄存器介紹看的有點(diǎn)頭暈,一會(huì)兒就搞混了。不過(guò)當(dāng)我看到后面用圖片描述定時(shí)器相關(guān)寄存器操作時(shí),一下就明了了。知道應(yīng)用再看原理后比較明了。

          本文引用地址:http://www.ex-cimer.com/article/201611/319106.htm

          為什么把這兩個(gè)定時(shí)器放到一起,因?yàn)樗鼈兌际?2位的定時(shí)器,它們除了外設(shè)基地址不同外,其他都相同。

          說(shuō)說(shuō)這兩個(gè)定時(shí)器的特性

          1.兩個(gè)32位定時(shí)器定時(shí)器/計(jì)數(shù)器各含有一個(gè)可編程的32位預(yù)分頻器;

          2.計(jì)數(shù)器或定時(shí)器操作;

          3.定時(shí)器0有3路、定時(shí)器1有4路捕獲通道。當(dāng)輸入信號(hào)跳變時(shí)可取得定時(shí)器的瞬時(shí)值,也可選擇使捕獲事件產(chǎn)生中斷;

          4.每個(gè)定時(shí)器共有4個(gè)32位匹配寄存器,匹配時(shí)的動(dòng)作有下面三種:

          匹配時(shí)定時(shí)器繼續(xù)工作,可選擇產(chǎn)生中斷。

          匹配時(shí)定時(shí)器停止工作,可選擇產(chǎn)生中斷。

          匹配時(shí)復(fù)位定時(shí)器,可選擇產(chǎn)生中斷。

          5.定時(shí)器0有3個(gè)、定時(shí)器1有4個(gè)對(duì)應(yīng)于匹配寄存器的外部輸出,匹配時(shí)的輸出有如下4種:

          匹配時(shí)設(shè)置為低電平

          匹配時(shí)設(shè)置為高電平

          匹配時(shí)翻轉(zhuǎn)

          匹配時(shí)無(wú)動(dòng)作

          6.對(duì)于每個(gè)定時(shí)器,多達(dá)4個(gè)匹配寄存器可配置為PWM,允許使用多達(dá)3個(gè)匹配輸出作為單邊沿控制的PWM輸出。

          如果接下來(lái)就是說(shuō)一大推寄存器的話,肯定犯困。我開(kāi)始就是從頭開(kāi)始看那么多寄存器看的犯暈。但是換個(gè)方式,從定時(shí)器應(yīng)用出發(fā),再來(lái)細(xì)看定時(shí)器寄存器,一下子會(huì)豁然開(kāi)朗不少。

          就定時(shí)器的應(yīng)用來(lái)說(shuō),一共有3個(gè)。一是單純的作為定時(shí)器,二是作為比較匹配。三就是定時(shí)器用作捕獲功能。

          先看看定時(shí)器用作定時(shí)功能時(shí)寄存器的模塊圖

          1.32位定時(shí)器TC的計(jì)數(shù)頻率由Fpclk經(jīng)過(guò)預(yù)分頻計(jì)數(shù)器得到

          2.定時(shí)器的啟動(dòng)/停止、計(jì)數(shù)復(fù)位由TCR控制

          3.需要注意的是,定時(shí)器溢出不會(huì)產(chǎn)生中斷,定時(shí)器的中斷是由捕獲事件或匹配事件引發(fā)的,所以上圖最后那根線是虛線。

          再看定時(shí)器用作比較匹配時(shí)的寄存器框圖

          1.定時(shí)器的比較匹配功能由寄存器MCR進(jìn)行控制

          2.MR0~3存放的是四路比較匹配通道的比較值

          3.當(dāng)發(fā)生匹配時(shí),按照MCR設(shè)置的方法產(chǎn)生中斷或復(fù)位TC等

          4發(fā)生匹配時(shí),EMR控制匹配引腳輸出——高電平、低電平、引腳電平翻轉(zhuǎn)等。

          最后是定時(shí)器用作捕獲功能時(shí)寄存器的框圖

          1.定時(shí)器的捕獲功能由寄存器CCR進(jìn)行控制

          2.通過(guò)CCR寄存器,捕獲事件可以設(shè)定為上升沿觸發(fā),下降沿觸發(fā)、雙邊沿觸發(fā)

          3.通過(guò)CCR寄存器,可以設(shè)定當(dāng)捕獲事件發(fā)生時(shí),是否產(chǎn)生中斷

          4.CR0~3為4路捕獲寄存器,保存對(duì)應(yīng)的捕獲值

          看見(jiàn)以上的定時(shí)器的三個(gè)功能,操作方法自然也大概明了了:

          1.計(jì)算定時(shí)器的時(shí)鐘頻率,設(shè)置PR寄存器進(jìn)行分頻工作

          2.若使用匹配功能,則需配置匹配通道的初值及其工作模式;若使用捕獲功能時(shí),需設(shè)置捕獲功能相關(guān)的寄存器。

          3.如果要使用到定時(shí)器中斷,則需設(shè)置VIC,使能中斷。、

          4.最后設(shè)置TCR,啟動(dòng)定時(shí)器。

          定時(shí)器計(jì)數(shù)時(shí)鐘頻率如下:

          計(jì)數(shù)時(shí)鐘頻率 = Fpclk / (N+1)

          N為PR的值

          知道一個(gè)大概,然后再看具體的寄存器,我是覺(jué)得這樣比較好些。

          先是寄存器匯總,看看關(guān)于定時(shí)器0與定時(shí)器1總共有多少個(gè)寄存器:

          下面分類(lèi)介紹寄存器。先說(shuō)基本的寄存器:

          1.中斷標(biāo)志寄存器(T0IR、T1IR)

          包含4個(gè)用于匹配中斷的標(biāo)志位,4個(gè)用于捕獲中斷的標(biāo)志位。具體描述如下圖,如果有中斷產(chǎn)生,則相應(yīng)寄存器位置1,否則為0.向相應(yīng)標(biāo)志位寫(xiě)1會(huì)清除該中斷標(biāo)志位,寫(xiě)0無(wú)效。

          2.定時(shí)器控制寄存器(T0CR、T1CR)

          該寄存器用于控制定時(shí)器計(jì)數(shù)器的操作。

          3.定時(shí)器計(jì)數(shù)器(T0TC、T1TC)

          當(dāng)預(yù)分頻的計(jì)數(shù)器到達(dá)計(jì)數(shù)的上限時(shí),32位定時(shí)器計(jì)數(shù)器TC加1。如下圖所示,如果TC到達(dá)計(jì)數(shù)上限之前沒(méi)有被復(fù)位,它會(huì)一直計(jì)數(shù)到0XFFFFFFFF然后翻轉(zhuǎn)到0X00000000,該事件不會(huì)產(chǎn)生中斷。如果需要,可以用匹配寄存器檢測(cè)溢出。

          4.預(yù)分頻寄存器(T0PR、T1PR)

          32位預(yù)分頻寄存器指定了預(yù)分頻計(jì)數(shù)器的最大值

          5.預(yù)分頻計(jì)數(shù)器寄存器(T0PC、T1PC)

          預(yù)分頻計(jì)數(shù)器使用某個(gè)常量來(lái)控制Pclk的分頻,可實(shí)現(xiàn)控制定時(shí)器分辨率和定時(shí)器溢出之間的關(guān)系。預(yù)分頻計(jì)數(shù)器每個(gè)Pclk周期加1,當(dāng)達(dá)到預(yù)分頻寄存器中保存的值時(shí),定時(shí)器計(jì)數(shù)器加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,如下圖所示。

          下面介紹第二部分寄存器,匹配功能寄存器組。

          匹配功能寄存器組包括匹配寄存器、匹配控制寄存器和外部匹配寄存器。其中,匹配寄存器用來(lái)存放定時(shí)器的匹配值,發(fā)生匹配事件時(shí),匹配控制寄存器用來(lái)設(shè)置定時(shí)器的工作。而外部匹配寄存器則用來(lái)設(shè)置匹配輸出引腳的動(dòng)作。

          1.匹配寄存器(MR0~MR3)

          匹配寄存器連續(xù)與定時(shí)器計(jì)數(shù)值(TC)相比較,當(dāng)兩個(gè)值相等時(shí),則自動(dòng)觸發(fā)產(chǎn)生中斷,復(fù)位定時(shí)器計(jì)數(shù)器或停止計(jì)數(shù)器,執(zhí)行的動(dòng)作由MCR寄存器控制。

          2.匹配控制寄存器(T0MCR、T1MCR)

          控制匹配發(fā)生時(shí)定時(shí)器進(jìn)行的操作。

          3.外部匹配寄存器(T0EMR,T1EMR)

          外部匹配寄存器提供外部匹配引腳MATn.0~MATn.3(n為0或1)的控制和狀態(tài)。當(dāng)匹配輸出為PWM輸出時(shí),外部匹配寄存器的功能由PWM決定。

          下面介紹的是捕獲功能寄存器組

          它包括:捕獲寄存器和捕獲控制寄存器。其中捕獲控制寄存器用來(lái)設(shè)置捕獲信號(hào),發(fā)生捕獲事件時(shí),定時(shí)器的計(jì)數(shù)值保存到捕獲寄存器中。

          1.捕獲寄存器(CR0~CR3)

          每個(gè)捕獲寄存器都與一個(gè)器件管腳相關(guān)聯(lián)。當(dāng)管腳發(fā)生特定的事件時(shí),可將定時(shí)器計(jì)數(shù)值裝入該寄存器,捕獲控制寄存器的設(shè)定決定捕獲功能是否使能以及捕獲事件在管腳的上升沿、下降沿或是雙邊沿發(fā)生。

          2.捕獲控制寄存器

          功能有:

          設(shè)置捕獲事件發(fā)生的位置,上升沿,下降沿還是上升沿+下降沿

          捕獲事件發(fā)生時(shí),是否產(chǎn)生中斷。

          下圖寄存器描述中,n代表定時(shí)器的編號(hào)0或1,每路捕獲功能,都是由三個(gè)位控制的。

          最后剩下的就是一些跟定時(shí)器0和1有關(guān)的其他寄存器

          1.計(jì)數(shù)控制寄存器(T0CTR、T1CTR)

          計(jì)數(shù)控制寄存器用來(lái)選擇定時(shí)模式還是計(jì)數(shù)模式,同時(shí)在計(jì)數(shù)模式下,用來(lái)選擇引腳和選擇邊沿計(jì)數(shù)(上升沿還是下降沿)

          選擇計(jì)數(shù)模式后,捕獲輸入引腳(由CTCR[3:2]來(lái)選擇)在每個(gè)Pclk的上升沿采樣。在比較兩個(gè)連續(xù)的捕獲輸入引腳采樣值之后,將會(huì)識(shí)別為上升沿、下降沿。邊沿的任一種或捕獲輸入引腳的電平有沒(méi)有變化。只有CTCR[1:0]設(shè)置的事件被識(shí)別后,定時(shí)計(jì)數(shù)器才會(huì)增加。

          給計(jì)數(shù)器提供的外部時(shí)鐘有些限制。因?yàn)樾枰B續(xù)兩個(gè)Pclk的上升沿才能識(shí)別一個(gè)捕獲輸入引腳的變化,捕獲輸入引腳的輸入頻率不能超過(guò)Pclk的1/2,這種情況下,高/低電平的持續(xù)時(shí)間必須不小于1/Pclk。

          2.PWM控制寄存器(PWM0CON,PWM1CON)

          此寄存器用來(lái)控制匹配輸出為PWM輸出。每個(gè)匹配輸出可獨(dú)立的設(shè)置為PWM輸出。對(duì)于每個(gè)定時(shí)器,最多可以選擇3個(gè)單邊沿PWM輸出在MATn.2:0上。另外一個(gè)匹配寄存器用來(lái)決定PWM輸出的周期,當(dāng)其他任何一個(gè)匹配寄存器發(fā)生匹配時(shí),PWM輸出將置為高電平。定時(shí)器可被選擇作為PWM周期的匹配寄存器復(fù)位。當(dāng)定時(shí)器復(fù)位為0時(shí),所有PWM的輸出將會(huì)置為低電平。

          下面是單邊沿控制PWM輸出的規(guī)則:

          1.除了在匹配值為0的情況之外,每個(gè)PWM周期的開(kāi)始,所有控制的PWM輸出為低(此時(shí)定時(shí)器設(shè)置為0)

          2.匹配寄存器發(fā)生匹配時(shí),相關(guān)的PWM輸出將會(huì)置高。如果沒(méi)有匹配發(fā)生(例如,匹配值大于PWM周期),PWM輸出將會(huì)一直輸出低電平

          3.如果匹配寄存器的值大于PWM輸出周期,且PWM的輸出為高電平,則在定時(shí)器復(fù)位時(shí),PWM輸出將會(huì)被清零。

          4.如果有一個(gè)匹配寄存器的值跟PWM周期值一樣,則在下一個(gè)時(shí)鐘PWM周期計(jì)數(shù)時(shí)鐘之后將會(huì)復(fù)位,因此,一個(gè)PWM將由一個(gè)時(shí)鐘寬度的高電平組成,寬度由PWM的計(jì)數(shù)時(shí)鐘決定。

          5.如果一個(gè)匹配寄存器的值為0,則第一次的PWM輸出為高電平。同時(shí)在定時(shí)器復(fù)位之后還將一直保持高電平。

          接著說(shuō)明關(guān)于定時(shí)器的中斷。

          LPC2103有兩個(gè)32位定時(shí)器,每個(gè)定時(shí)器可以產(chǎn)生8種類(lèi)型的中斷。4路匹配中斷、4路捕獲中斷,可以讀取中斷標(biāo)志寄存器(TnIR)來(lái)區(qū)分中斷類(lèi)型。下圖是定時(shí)器中斷與向量中斷控制器(VIC)的關(guān)系

          1.匹配中斷

          LPC2103定時(shí)器溢出不會(huì)產(chǎn)生中斷,但匹配可以產(chǎn)生中斷。每個(gè)定時(shí)器都有4個(gè)匹配寄存器,存放匹配值。當(dāng)定時(shí)器的計(jì)數(shù)值TC等于MR時(shí),就可以產(chǎn)生中斷。切寄存器TnMCR控制匹配中斷的使能。下圖就是以定時(shí)器0為例的匹配中斷說(shuō)明:

          2.捕獲中斷

          當(dāng)定時(shí)器的捕獲引腳CAP上出現(xiàn)特定捕獲信號(hào)時(shí),可以產(chǎn)生中斷。下圖以CAP0.0為例說(shuō)明:

          以上就是定時(shí)器0和定時(shí)器1的全部?jī)?nèi)容了,感覺(jué)LPC2103的定時(shí)器還是蠻強(qiáng)大的。下來(lái)做個(gè)簡(jiǎn)易的頻率計(jì)鞏固這節(jié)的知識(shí)。

          參考《EasyARM2103教材》



          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();