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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32 TImer幾種模式_通用定時器

          STM32 TImer幾種模式_通用定時器

          作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
          輸入捕獲模式

          庫函數(shù)例程位置: STM32F10x_StdPeriph_Lib_V3.3.0ProjectSTM32F10x_StdPeriph_ExamplesTIMInputCapture

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

          在輸入捕獲模式下,當(dāng)檢測到ICx信號上相應(yīng)的邊沿后,計數(shù)器的當(dāng)前值被鎖存到捕獲/比較寄存器(TIMx_CCRx)中。當(dāng)捕獲事件發(fā)生時,相應(yīng)的CCxIF標(biāo)志(TIMx_SR寄存器)被置’1’,如果使能了中斷或者DMA操作,則將產(chǎn)生中斷或者DMA操作。

          在捕獲模式下,捕獲發(fā)生在影子寄存器上,然后再復(fù)制到預(yù)裝載寄存器中。

          PWM輸入模式

          庫函數(shù)例程位置 :STM32F10x_StdPeriph_Lib_V3.3.0ProjectSTM32F10x_StdPeriph_ExamplesTIMPWM_Input

          該模式是輸入捕獲模式的一個特例

          例如,你需要測量輸入到TI1上的PWM信號的長度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2寄存器),具體步驟如下(取決于CK_INT的頻率和預(yù)分頻器的值)

          ● 選擇TIMx_CCR1的有效輸入:置TIMx_CCMR1寄存器的CC1S=01(選擇TI1)。

          ● 選擇TI1FP1的有效極性(用來捕獲數(shù)據(jù)到TIMx_CCR1中和清除計數(shù)器):置CC1P=0(上升沿有效)。

          ● 選擇TIMx_CCR2的有效輸入:置TIMx_CCMR1寄存器的CC2S=10(選擇TI1)。

          ● 選擇TI1FP2的有效極性(捕獲數(shù)據(jù)到TIMx_CCR2):置CC2P=1(下降沿有效)。

          ● 選擇有效的觸發(fā)輸入信號:置TIMx_SMCR寄存器中的TS=101(選擇TI1FP1)。

          ● 配置從模式控制器為復(fù)位模式:置TIMx_SMCR中的SMS=100。

          ● 使能捕獲:置TIMx_CCER寄存器中CC1E=1且CC2E=1。


          由于只有TI1FP1和TI2FP2連到了從模式控制器,所以PWM輸入模式只能使用TIMx_CH1 /TIMx_CH2信號。

          強(qiáng)置輸出模式

          在輸出模式(TIMx_CCMRx寄存器中CCxS=00)下,輸出比較信號(OCxREF和相應(yīng)的OCx)能夠直接由軟件強(qiáng)置為有效或無效狀態(tài),而不依賴于輸出比較寄存器和計數(shù)器間的比較結(jié)果。

          例如:CCxP=0(OCx高電平有效),則OCx被強(qiáng)置為高電平。 置TIMx_CCMRx寄存器中的OCxM=100,可強(qiáng)置OCxREF信號為低。

          輸出比較模式

          此項功能是用來控制一個輸出波形,或者指示一段給定的的時間已經(jīng)到時。 當(dāng)計數(shù)器與捕獲/比較寄存器的內(nèi)容相同時,輸出比較功能做如下操作:

          ● 將輸出比較模式(TIMx_CCMRx寄存器中的OCxM位)和輸出極性(TIMx_CCER寄存器中的CCxP位)定義的值輸出到對應(yīng)的引腳上。在比較匹配時,輸出引腳可以保持它的電平(OCxM=000)、被設(shè)置成有效電平(OCxM=001)、被設(shè)置成無效電平(OCxM=010)或進(jìn)行翻轉(zhuǎn)(OCxM=011)。

          ● 設(shè)置中斷狀態(tài)寄存器中的標(biāo)志位(TIMx_SR寄存器中的CCxIF位)。

          ● 若設(shè)置了相應(yīng)的中斷屏蔽(TIMx_DIER寄存器中的CCxIE位),則產(chǎn)生一個中斷。

          ● 若設(shè)置了相應(yīng)的使能位(TIMx_DIER寄存器中的CCxDE位,TIMx_CR2寄存器中的CCDS位選擇DMA請求功能),則產(chǎn)生一個DMA請求。

          輸出比較模式的配置步驟:

          1. 選擇計數(shù)器時鐘(內(nèi)部,外部,預(yù)分頻器)

          2. 將相應(yīng)的數(shù)據(jù)寫入TIMx_ARR和TIMx_CCRx寄存器中

          3. 如果要產(chǎn)生一個中斷請求和/或一個DMA請求,設(shè)置CCxIE位和/或CCxDE位。

          4. 選擇輸出模式,例如當(dāng)計數(shù)器CNT與CCRx匹配時翻轉(zhuǎn)OCx的輸出引腳,CCRx預(yù)裝載未用,開啟OCx輸出且高電平有效,則必須設(shè)置OCxM=’011’、OCxPE=’0’、CCxP=’0’和CCxE=’1’。

          5. 設(shè)置TIMx_CR1寄存器的CEN位啟動計數(shù)器

          PWM 模式

          脈沖寬度調(diào)制模式可以產(chǎn)生一個由TIMx_ARR寄存器確定頻率、由TIMx_CCRx寄存器確定占空比的信號。

          在TIMx_CCMRx寄存器中的OCxM位寫入’110’(PWM模式1)或’111’(PWM模式2),能夠獨(dú)立地設(shè)置每個OCx輸出通道產(chǎn)生一路PWM。必須設(shè)置TIMx_CCMRx寄存器OCxPE位以使能相應(yīng)的預(yù)裝載寄存器,最后還要設(shè)置TIMx_CR1寄存器的ARPE位,(在向上計數(shù)或中心對稱模式中)使能自動重裝載的預(yù)裝載寄存器。

          下面是一個PWM模式1的例子。當(dāng)TIMx_CNT

          單脈沖模式

          單脈沖模式(OPM)是前述眾多模式的一個特例。這種模式允許計數(shù)器響應(yīng)一個激勵,并在一個程序可控的延時之后,產(chǎn)生一個脈寬可程序控制的脈沖。

          可以通過從模式控制器啟動計數(shù)器,在輸出比較模式或者PWM模式下產(chǎn)生波形。設(shè)置TIMx_CR1寄存器中的OPM位將選擇單脈沖模式,這樣可以讓計數(shù)器自動地在產(chǎn)生下一個更新事件UEV時停止。 僅當(dāng)比較值與計數(shù)器的初始值不同時,才能產(chǎn)生一個脈沖。啟動之前(當(dāng)定時器正在等待觸發(fā)),必須如下配置:

          向上計數(shù)方式:CNT < CCRx ≤ ARR (特別地,0 < CCRx), 向下計數(shù)方式:CNT > CCRx。

          編碼器接口模式

          兩個輸入TI1和TI2被用來作為增量編碼器的接口。參看表77,假定計數(shù)器已經(jīng)啟動(TIMx_CR1寄存器中的CEN=’1’),計數(shù)器由每次在TI1FP1或TI2FP2上的有效跳變驅(qū)動。TI1FP1和TI2FP2是TI1和TI2在通過輸入濾波器和極性控制后的信號;如果沒有濾波和變相,則TI1FP1=TI1,TI2FP2=TI2。根據(jù)兩個輸入信號的跳變順序,產(chǎn)生了計數(shù)脈沖和方向信號。依據(jù)兩個輸入信號的跳變順序,計數(shù)器向上或向下計數(shù),同時硬件對TIMx_CR1寄存器的DIR位進(jìn)行相應(yīng)的設(shè)置。不管計數(shù)器是依靠TI1計數(shù)、依靠TI2計數(shù)或者同時依靠TI1和TI2計數(shù)。在任一輸入端(TI1或者TI2)的跳變都會重新計算DIR位。 編碼器接口模式基本上相當(dāng)于使用了一個帶有方向選擇的外部時鐘。這意味著計數(shù)器只在0到TIMx_ARR寄存器的自動裝載值之間連續(xù)計數(shù)(根據(jù)方向,或是0到ARR計數(shù),或是ARR到0計數(shù))。所以在開始計數(shù)之前必須配置TIMx_ARR;同樣,捕獲器、比較器、預(yù)分頻器、觸發(fā)輸出特性等仍工作如常。 在這個模式下,計數(shù)器依照增量編碼器的速度和方向被自動的修改,因此計數(shù)器的內(nèi)容始終指示著編碼器的位置。計數(shù)方向與相連的傳感器旋轉(zhuǎn)的方向?qū)?yīng)。下表列出了所有可能的組合,假設(shè)TI1和TI2不同時變換。


          下圖是一個計數(shù)器操作的實例,顯示了計數(shù)信號的產(chǎn)生和方向控制。它還顯示了當(dāng)選擇了雙邊沿時,輸入抖動是如何被抑制的;抖動可能會在傳感器的位置靠近一個轉(zhuǎn)換點(diǎn)時產(chǎn)生。在這個例子中,我們假定配置如下:

          ● CC1S=’01’ (TIMx_CCMR1寄存器,IC1FP1映射到TI1)

          ● CC2S=’01’ (TIMx_CCMR2寄存器,IC2FP2映射到TI2)

          ● CC1P=’0’ (TIMx_CCER寄存器,IC1FP1不反相,IC1FP1=TI1)

          ● CC2P=’0’ (TIMx_CCER寄存器,IC2FP2不反相,IC2FP2=TI2)

          ● SMS=’011’ (TIMx_SMCR寄存器,所有的輸入均在上升沿和下降沿有效).

          ● CEN=’1’ (TIMx_CR1寄存器,計數(shù)器使能)

          TIM 與Hall接口

          霍爾傳感器位于三相電機(jī)



          關(guān)鍵詞: STM32TImer模式通用定時

          評論


          技術(shù)專區(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); })();