![STM8教程實驗10-定時器TIM3_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/61c4cf1b-9c68-45c8-894a-835366235934/61c4cf1b-9c68-45c8-894a-8353662359341.gif)
![STM8教程實驗10-定時器TIM3_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/61c4cf1b-9c68-45c8-894a-835366235934/61c4cf1b-9c68-45c8-894a-8353662359342.gif)
![STM8教程實驗10-定時器TIM3_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/61c4cf1b-9c68-45c8-894a-835366235934/61c4cf1b-9c68-45c8-894a-8353662359343.gif)
![STM8教程實驗10-定時器TIM3_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/61c4cf1b-9c68-45c8-894a-835366235934/61c4cf1b-9c68-45c8-894a-8353662359344.gif)
![STM8教程實驗10-定時器TIM3_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/61c4cf1b-9c68-45c8-894a-835366235934/61c4cf1b-9c68-45c8-894a-8353662359345.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、例程十定時器TIM3定時器的使用是很重要的,可以說是單片機的靈魂來的,它的功能非常強大,單 片機可以利用它來做很多事情。這個例程主要解析一下 STM8S里面定時器TIM2 的主要功能特點。TIM2是個通用定時器,和TIM3是一樣的。通用定吋器由帶有可編程預(yù)分頻器的位自動裝載計數(shù)器構(gòu)成。它適用于多種場含,包拆:基本的定時測量輸入信號的脈沖長度(輸入捎獲)產(chǎn)生輸出波形(輸出比較,PWM和單脈沖) 與其他定吋器或外部信號同步(外部吋鐘,復位.觸發(fā)和使能信號)(僅針對帶冇TI陽5的芯片) 定吋器可由內(nèi)部時鐘驅(qū)動。TIM2/TIIVI3的主要功能TIM2TIM3的功能包括:低位向上計數(shù)和自動裝載計數(shù)器
2、4位可編程(可以實吋修改的)預(yù)分赧器,計教器吋鐘頻率的分頻系數(shù)為132托&之間的2的 幕 3個獨立通逍:輸入捕莪一輸出比較一 PWM主成(邊緣對齊模式一單脈沖模式輸出如下事件笈主吋產(chǎn)主中斷;- 更新:計數(shù)器向上溢出.計數(shù)器初蛤化(通過軟件-輸入捕獲-輸出比較圖 79TIM2/TIM3 框圖TIME BASE UNIT6噸b Ck ChT1rrt; tnR-甫,r時基單元包含: 化位向上計數(shù)器預(yù)分頻器 “位自動裝載寄存器沒有重復寄存器=計數(shù)器便用內(nèi)部吋理(fMASTHR)+它由CK_PSC提供”井經(jīng)過預(yù)分頻器分攧產(chǎn)生計數(shù)器吋群CK CNT,時基單元TIMx PSCPjiuto-Rek3&
3、amp;d ReliefL16-blt C&UHBirTlMx_AfiflH. aRRLTlMx_.CinRH.CNTRL“UIF UEV3 / 9# / 9預(yù)分頻器預(yù)分頻黠的實現(xiàn):預(yù)分頻器基于4泣寄荷器控制的伯位計數(shù)器,由于寄存器帶有韁沖器因此可以隨吋修改預(yù)分 頻的數(shù)值計數(shù)器可以取值為1到32了 68之間的2的幕進行分頻。計數(shù)器吋鐘頻率的計算公式;fCK.CNT =如戶蟲冋濾則預(yù)分頻器的值由預(yù)裝載寄存器寫入=一旦寫入預(yù)裝載寄存器的LS字節(jié)時,帶有當前使用值的影 子寄荷器就被寫入了新的值新的預(yù)分頻值在下一個周期時生效(在下一個更新事件之后h對TIMxPSCRM-器的徴攥作通過預(yù)裝裁奇存
4、器實現(xiàn),囚北可以隨時僕取不受陽制°計數(shù)模式在向上計數(shù)模式中.計數(shù)潴從0計數(shù)到用戶定義的比較值仃IMx_ARR寄存器的值),然G重新從0 開始計數(shù)井產(chǎn)生一仆計數(shù)器溢出事件,同時,如杲TIM1_CR117-的UDIS位是6將會產(chǎn)生一 個更新事件(UEV). 0描述了向上讓數(shù)模式匚# / 9置位TIMjEGR寄療器的UG位(通過軟件方式或苦輕用從韓式控制器)也同樣可以產(chǎn)生一個史新 事件.# / 9風馳電子STM8開發(fā)板2012愜用軟件置位TIMx_CR1寄存器的UDIS位.可以禁止更新事件,這樣可以避免左史即預(yù)裝我寄 存器吋史新影子寄存器。在UDIS位被淸除之前+將不產(chǎn)主更荻事件匚但是在應(yīng)
5、該產(chǎn)生史新事件 時計數(shù)器仍會被清0,冋吋頂分頗器的計數(shù)也被濟0(但預(yù)分頻樂的數(shù)值小變),此外,如呆設(shè)置 TTIMx_CR1寄存器中的URS位(選擇史新詰求),設(shè)置UG位將產(chǎn)生一個史新事件UEX但硬件 不設(shè)置5f標志(即不產(chǎn):生中斷請求)這是為了避免在料我模式下涓除計垃器時,同時產(chǎn)生吏新 和捕獲中斷口巧發(fā)生一個更新韋件時,所有的寄存器都被更新,硬件同時(依據(jù)URS位)設(shè)置更新標志徑 (TIMx_SR寄存器的UF位”自動裝載影子寄存器被車新置入預(yù)裝載寄存器的僅TIMx_ARR).預(yù)分頻器的緩存器被置入頊裝載寄存器的值仃IMx_PSC寄存器的內(nèi)容),卜-圖給出一些例子,說明TIMx_ARR=0x36
6、吋,計數(shù)器在不同吋鐘頻率卜-的動作°坪站的預(yù)分頻為Z囚此計數(shù)器的吋鐘(CK_CNT)頻率是預(yù)分頻時鐘(CKJSC)頻率的一半匚 関32禁止了自動裝載功能(ARPE=O)所以在計數(shù)器達到0x36吋,計數(shù)器溢出,娜子寄存器立刻 被史新,同時產(chǎn)主一個史新事件=圖32當ARPE=0(ARR預(yù)裝載h預(yù)分頻為2時的計數(shù)器史新。ck psc luinjinnnnnnfinnnnnnnnnnnnnnnnnnRCNT_EM TIMER CLOCK = CK CMTrouuwwwuwiCOUNTER REGISTER3132)(33)(34歸或3皿00和他® 3帕碗或虬COUNTER OVER
7、FLOW1nUPDATE EVENT (UEV|nilPHATF INTFRFHjPT FL AR (UIF)value iransfend knmedialBly in shadow朋3的預(yù)分頻為仁因此CK_CNT(n頻率與CKJSC暫影3便能了自動重載(ARPE=1),所以在計數(shù)器達到皿FF產(chǎn)生溢出。0x36在溢出時被寫入, 同吋產(chǎn)生一個更新事件=4 / 9圖33 ARPE=1仃IMJARR預(yù)裝載)時的計數(shù)器更新ck_psc jLrLrLrLrLrLrLnrLrLrLrLrLrLrLrCNT ENTIMER CLOCK = CK.CNT_CQUMTER REGISTER FA )uumqi
8、nnmuuuinCOUNTER OVERFLOWUPDATE EVEHT (U£V|5 / 9# / 9計數(shù)模式就介紹一種向上技術(shù)模式,其他模式可以參考STM8寄存器.pdf文檔第115頁至118頁捕獲/比較通道輸入部分請參考"5如魏2輸入部分框圖所示,定時器帶有兩個輸入通道,通道1在內(nèi)部鏈接到比較器匚 圖82 輸入部分框圖# / 9風馳電子STM8開發(fā)板2012圖83TIM2通道1的輸入部分框圖T11F ED:1c lhe clocfc/trnggeir witrollflfrnDUASTtRfitterdownooualeiTI1FTilf 巳OilTI2FP1divi
9、der/1.Z2. MJSICPSICF3:01<X1PTflCTl-CCMRlTIM? CCER1TI2F rising P (from channT 2)TI2F 恒Ilin® (from channel 2)(hom cloeMn contrbHsr>CG1tTIM2_CCMR1 TIM2.CCEA1圖84輸出部分框圖6 / 9風馳電子STM8開發(fā)板2012# / 9風馳電子STM8開發(fā)板2012圖85通道1的輸出部分框罔# / 9風馳電子STM8開發(fā)板2012# / 9風馳電子STM8開發(fā)板2012通道輸出的具體的原理可以參考 STM8寄存器.pdf文檔第133頁
10、至138頁中斷迪用宦時器包括4個中斷源;捕茯/比較3中斷捕茯/比較2中斷捕獲/出較1中斷史新中斷在使用中斷功能吋,需要先設(shè)置TIMxJERf器的CC3IE位戎CC2IE位或CC1IE位使能中斷請 求。通過軟件設(shè)置TIMx_EGR寄存誥的相應(yīng)位也能產(chǎn)主不冋的中版源-了解通用定時器TIM3現(xiàn)在關(guān)鍵是學會怎么去用,怎樣去設(shè)置定時器的寄存器 好的,跟以前一樣從主函數(shù)看起int main (void)C/* Infinite loop"設(shè)置內(nèi)鄭冉速時鐘為主時鐘*CLK_HSrPrescalerConfig(CLKPRESCALER_HS工口工HL);/*1<Set High speed
11、internal clock */ TIM3_MQde = BaseTimeTini3_Init (丨;LED_lnit.();Set-LdOFF ();_nable_interrupt ();#elif= PWMPWM_Init ();while (1)/* 添力匚你的代碼 */|#if TIM3_Mode =BaseTimeLED Display ();#*lif Tir-i3_Mode=-PWMTeat PWM_LED ();看過這主函數(shù),是否覺得這和前面的例程寫得有點不一樣呢?是的,這個TIM3的功能強大,功能比較多,在我的例程中,我寫了幾個常用和比較重要的功能, 所以才有了預(yù)定義的方
12、法,這種形式對調(diào)試程序比較重要,呆會在詳細解釋。這 種#if#endif 或#if Helif#endif。這就預(yù)定義,只有后面為真,編譯器 才會編譯那些代碼,否則就不會編譯。大家學過C語言的都是知道這種編程方法, 希望大家能領(lǐng)會這種方法。下面還是主要看看的我們STM8S勺TIM3的各個功能的初始話。在這個例程中,介紹了定時器的基本定時,主要利用基本定時來實現(xiàn) 最精準的1ms的延遲函數(shù)和TIM3的PW啲功能。#if TTM3_Mode BaseTimeTim3_lnit ();LED !nit ();SetLedOFF ();enableinterrupt();#elif TIIwI3_Mod
13、e = PUMPWM init-();#endif這個就是初始化,如果是TIM3_Mode=BaseTim的話就是利用TIM3的定時器功 能??纯蠢锩娴某跏蓟伞? / 9風馳電子STM8開發(fā)板2012void Tini3_lnit. (void)T丄M3_uelnit();TlM3_Tiin*3AsaIni-t ( 3P TM3_P RES CALE R_16 ,;TTM3_Prescale rConfig(TTM3_PRESCALER_16# Tin3_PSCRELOADMODE_IMHEDIATE), TiM3_ARRPreloadCorLfig (ehabLE );TIM3_ITCon
14、fig IIM3 _Z T _U PDAT E f ENABLE);TIM3_Cmd(ENABLE);)這個初始化函數(shù)定義了 TIM3的計數(shù)頻率為主時鐘的16分頻,就是1M當從0計 數(shù)到999就是1ms但計數(shù)到999是馬上又自動重裝系數(shù),又從 0開始計數(shù),當 計數(shù)到999,會產(chǎn)生一個中斷。_en ablenterrupt(); 這個就是開總中斷其他的2個初始化就LED的初始化,前面已經(jīng)講過了,這里就不再重復了。下面看看中斷服務(wù)子程序Interjrtipt void TIM3_UPD_OVF_BRK_IRQHand丄g弋(aoiM)T irairLgDelay_De creme nt ();TI
15、M3_ClearITPendingBit (THM:3_:rT_UPDATE); 一 一 一這個TIM3計數(shù)溢出中斷的中斷號為0xF,里面的函數(shù)是放中斷后要處理的語句, 最后要清楚標志位,TIM3_ClearlTPendingBit(TIM3_IT_UPDATE);否則就跳不出 中斷。這里主要是實現(xiàn)1ms的延遲函數(shù),所以只調(diào)用了 TimingDelay_Decrement();這個函數(shù)。看看它的函數(shù)原型一void TimingDelay_Decrement. (void)if (TimingDelay i = 0x00)TimingDelay-;就是每近一次中斷TimingDelay就減1,T
16、imingDelay定義為靜態(tài)全局變量,這 樣的話就可以實現(xiàn)1ms精準延遲。下面看看延遲函數(shù)的原型void delay_ms(nTime)Timi ngDe1ay = nTirne;while CTimingDelay L = 0);整個延遲思想是TimingDelay不等于0的話,就在這等到TimingDelay為0, TimingDelay減1是進去中斷子程序,TimingDelay 是全局靜態(tài)變量。這個功能 使用流水燈LED來演示,所以大家在主函數(shù)的文件頭部那里這樣定義就行 #dfine1非tdmfiriEPWM0#defineEaseTime1這個就是表示#if TIM3 Mode二二
17、 BaseTime當你編譯的時候只編譯定時器這個功能的代碼。編譯后下載到風馳電子STM8開發(fā)板的時候就會見到LED不斷的流,每隔100ms下面接著寫TIM3的PW功能#elif TIM3_Mode();void PWM I nit (甘想id)#if TIM3 Chaniti&l-=TIM3_Channel 1/*TTM3 Frequency = TTM3 counter elotk/(ARF + 1)*/TIM3_TinieBaseInit I.TTM3-PRE凸499);/*TIM3 Fraqli&ney = 16M/16/ (499+1) -2K*/* PWM1 Mode
18、 ccnfiguratian: ChannellTIM3 Chsnntll duty cycle = TIM3_CCR1/(TIM3_ARR + 1)J * 100 = 50*/TIM3_OClZnit (TIM3_OCMODE_Pml, TI M3 _OUT PUT ST AT E_E N AB LE r 2 5 0 , TI M3_O C PO LAE IT Y _H IGH); TiM3_oclPt&10adconfig(enable);#elif TTM3_Chan1 = -TIM3_Channe12TIM3_TinieEaselnit (TII13_PRESCALER_L6,
19、 999);TIM3 OCZmit (TIM3 OCMODE PtMMZ, TIM3 OUTPUT STATE fiHABLE, SDCt TIK3 OC POLARITY HIGH); TTM3_OC2Pre loadconfig(ENABLE);#fllif TIMS hs.nn«l = =TlM3_ehannel 3TI PI3_OC PO LARI TY_H I GH);TZM3_TittieEaseIlflit (TIM3_PRESCALER_16r 499);TIMS_OC3ini.t (IIM3_OCEODE_PWM3r II?I3_DUTFLITSTATE_ENABL
20、Ef 25Df TIM3_OC3FreloadC0nfig(ENABLE);#endifTIW3_Cnid (ENABLE) ivoid這個初始化函數(shù)定義了 3個通道的初始化,初始化里面最重要的是設(shè)置了 PWM勺 頻率和占空比,對于怎么設(shè),大家看上面的例程代碼和注釋就清楚了。 在官方庫 里面沒有單獨對PW設(shè)置頻率和占空比,所以我就封裝了 2個這樣的函數(shù),大家 來看看。SetT工膽rrcqu2ric:¥ (uint 16_t TIM3_P© riod)/ * Set. theAutoreload value */TIM3->ARRH = (uint8_t)(TIM3_P
21、eriod » 8);TIM3->ARRL = (uintBt)(TTM3_PeLiod);大家看到這個函數(shù)是否和官方庫封裝的很相似呢?這是個很標準的函數(shù),其實大家要培養(yǎng)成良好的編程習慣,這樣讓人感覺你的編程是很規(guī)范的。 這個函數(shù)是實 現(xiàn)PW啲頻率的設(shè)置。頻率的設(shè)置還要跟時鐘有關(guān)系。TIM3 Freque ncy = TIM3 cou nter clock/(ARR +1)= TIM3 cou nterclock/( TIM3_Period+ 1)。void S-atTIM3_PWM_DutyCycl& ( ain匸rTM3_Pulse)#if friM3_Channel=TlM3_ChanneLl /* Set 七h總 Pulse value */TIH3->CCR1H = (uint8_t)(TIM3_Puls& » B); TIH3->CCR1Ij = (uinz6_t) (TlM3_eulse) i#lif TTM3_C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年衛(wèi)星云圖接收設(shè)備項目立項申請報告模板
- 建筑工程的工程施工方案
- 建筑工程的合同索賠與處理
- 建筑工程環(huán)境保護法規(guī)解讀
- 新郎爸爸婚禮致辭12篇
- 市場規(guī)模與增長趨勢
- 新學期計劃集錦15篇
- 標準化學校建設(shè)實施方案1
- 培訓中的創(chuàng)新與創(chuàng)意思維發(fā)展
- 教育技術(shù)在醫(yī)療健康領(lǐng)域的應(yīng)用研究
- 04S519小型排水構(gòu)筑物(含隔油池)圖集
- YB∕T 4146-2016 高碳鉻軸承鋼無縫鋼管
- 多圖中華民族共同體概論課件第十三講先鋒隊與中華民族獨立解放(1919-1949)根據(jù)高等教育出版社教材制作
- 高考英語單詞3500(亂序版)
- 《社區(qū)康復》課件-第五章 脊髓損傷患者的社區(qū)康復實踐
- 北方、南方戲劇圈的雜劇文檔
- 燈謎大全及答案1000個
- 部編小學語文(6年級下冊第6單元)作業(yè)設(shè)計
- 洗衣機事業(yè)部精益降本總結(jié)及規(guī)劃 -美的集團制造年會
- 2015-2022年湖南高速鐵路職業(yè)技術(shù)學院高職單招語文/數(shù)學/英語筆試參考題庫含答案解析
- 鋁合金門窗設(shè)計說明
評論
0/150
提交評論