AVRCTC模式實驗_第1頁
AVRCTC模式實驗_第2頁
AVRCTC模式實驗_第3頁
AVRCTC模式實驗_第4頁
AVRCTC模式實驗_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、AVR單片機學(xué)習(xí)筆記-基于慧凈HJ2G AVR開發(fā)板第7.2章CTC模式7.2.1概述“CTC是什么? ”如果借簽葉老師的意思是:CTC 是用于輸岀 50%占空比的方波信號(0.5 Duty Cycles Rectangle Wavefonn), 除此之外它還用于產(chǎn)生準確的連續(xù)定時信號。在筆記中我依然也是跟著葉老師使用定時器1完成CTC的試驗。新手打從一開始 就看數(shù)據(jù)手冊必定被它秒殺,事實上我也已經(jīng)被秒殺了幾次。在瀏覽手冊和在 google沖浪時可以很明顯的看到,CTC工作模式不一定只是定時器1,其他的定時 器也能完成,但是新手就要承認自己是新手,老師教什么自己就學(xué)什么。當明白 基礎(chǔ)了解原理后

2、,再回頭看|作也不遲。7.2.2 CTC模式概念我們可以假設(shè)OCnA是PD4和PD5引腳輸出的電半,紅色圓點是最大值。當在初 始的階段中,OCnA輸出低電平,而TCNT11的值從0開始就開始累加,當TCNTn 的值到大紅色圓點的時候,OCnA的電平立即發(fā)生變化取反。這時候后就會產(chǎn)生 所謂的“OCnA抵達最大值中斷”或者“ICFn抵達最大值中斷”(它們是什么?這 個不重要,往后看就會明白了)。在這一瞬間TCNTn的值清零然后乂從0開始累加。TCNTn的值抵達另一個最高 點時之前,OCnA輸出的電半一直保持上一次取反的結(jié)果,也就是會一直保持高電 平,直到達到TCNTn到達另一個最奇點,OCnA輸出

3、的電平就會再一次的収反, 變成低電平。以上的動作會一直持續(xù),直到永遠。在電半取反的過程,每一次Period方波的占空比都是50%,而且Period的決定就 是我們要輸出的頻率。(后面會介紹)除此之外,TCNTn的值是自動設(shè)置的,而 OCiiA|ICFn的最大值是人為賦值,該賦值動作涉及到,比較輸出模式和方波輸產(chǎn) 生模式位。7-23 CTC模式下有關(guān)的寄存器(定時器1為例)第一:T/C1控制寄存器A TCCR1ABit76543210| COM1A1COM1AO |COM1B1| COM1BO |FOC1AFOC1BVYGM11WGM10 | TCCR1A和寫R/VVR/WR/WR/WWWR/W

4、R/V;00000000 Bit7:6-COM1A1:0:A的比較輸出模式Bit5:4-COM1B1:0:的比較輸出橫式COM1A1:0與COM1B1:0 分別控制0C1A 與OC1B狀態(tài)。如果COM1A1:0(COM1B1:0)的 一位或兩位被寫入,fr . 0C1A(0C1B)輸出功能將取代I/O竦口功能。此時0C1A(0C1B) 相應(yīng)的輸出引腳數(shù)據(jù)方向控制必須置位以使能輸岀驅(qū)動器。OC1A(OC1B)與物理引腳相連時,COM1x1:0的功能由WGM13:0的設(shè)置決定。Table 44 給出當WGM13:0設(shè)置為普通模式與CTC摂式(非PWM)時COM1x1:0的功能定義。CTC模式下僅針

5、對后四位設(shè)置,也就是EIT4EIT7。設(shè)置的結(jié)果就是用來決定CTC 比較輸出的模式,瀏覽以下的表格:Table 44.比較輸出模式,非PWMCOM1A1/COM1B1COM1AO/COM1BO說明00普通端=l操作,非OC1A/OC1B功能01比較匹配時OC1A/OC1B電平取反10比較匹配時清零OC1A/OC1B(輸出低電平)11比較匹配時置位OC1A/OC1B (輸出高電平)當然,在試驗中我們僅使用到第二種模式,就是當OC1A/OC1B比較匹配時電平 就取反,很顯然換句話說就是,你要OCxA,還是OCxB工作或考如何工作,全部 収決于COM1AO:1, COM1BO:1的設(shè)置。在試驗當中老

6、師是以兩個引腳同時工作 最為實例。所以E.g: TCCRlA=0x6*;注意:當使用定時器1時,OCxA也就是OC1A對應(yīng)PD5引腳。OCxB也就是OX1B 分別對應(yīng)PD4引腳。第一:T/C1控制寄存器B TCCR1BBit76543210| ICNC1ICES1一WGM13 | WGM12CS12CS11CS10TCCR1B讀/寫R/WR/WRR/VR/WR/WR/W初J8值00000000既然要進入CTC模式,還要而外的強調(diào)CTC的波形產(chǎn)生模式位,而寄存器TCCR1B 的EIT3EIT4用來決定了 CTC的波形產(chǎn)生模式位。見以下圖表:Table 47.液形產(chǎn)生欖式的位摘述H式WGM13WG

7、M12 (CTC1|WGM11 (PWM11)WGM10 (PWM10)定科/計敷工作橫式計數(shù)上 隈值TOPOCR1X1 新時刻TOV1 位時00000晉么奧式OxFFFF立即見幻MAX100018位相位修IEPWMOxOOFFTOPBOTTOM20010g位相位修正PWM0x01FFTOPBOTTOM3001110位粗位停正PWMOx03FFTOPBOTTOM40100CTCOCR1A立即更新MAX501018位快速PWMOxOOFFTOPTOP601109位快速PIWOxOlFFTOPTOP7011110位快速PWMQxO3FFTOPTOP81000相位與頻率修IEPV/MICR1BOTT

8、OMBOTTOM91001相位E頻率修正PWMOCR1ABOnOMBOTTOM101010相位修IF PWMICR1TOPBOTTOM111011相位修正PWMOCR1ATOPBOTTOM121100CTCICR1立即更斯MAX131101保*-141110快速PWMICR1TOPTOP151111快速PWMOCR1ATOPTOP或者可以這樣假設(shè):模式4中CTC的比較匹配最大值是由OCCR1A這個寄存器 來決定,相反的如果是模式12, CTC的比較匹配最大值則是由ICR1寄存器來決 定。這樣說比較明白了嗎?試驗中,葉老師是以模式四進行講解。除此之外,定時器1用來產(chǎn)生CTC依然也是需要時鐘源,而

9、時鐘源一般上取|1內(nèi) 部的時鐘(晶振),然后再來針對EITOBIT2設(shè)置分頻。Table 48時鐘逢擇位描述CS12CS11CS10說明000無時鐘涼(T/C停止)001clkc/1 (無預(yù)分頻)010c%/8(來自和分頻SS .I011Clk 64 (來自氏力頻莽)100clkd256(其自預(yù)分UH)101ClbJ1024(采白預(yù)分頻曲)110外部T1引挪,下隆沿阻動111外部T1引腳.上升沿驅(qū)動AVR單片機學(xué)習(xí)筆記-基于慧凈HJ2G AVR開發(fā)板第三:輸出比較寄存器1A|B OCRA|Bat765432 10OCR1A15:81 OCR1AHIOCR1A7:0I OCR1AL諫/耳RZAR

10、/WR/WR/WR/WR/WR/WR/W初進10000 0000st76543210OCR1B15;8JOCR1BHCXR1B7:0JOCR1BLak/sR/WR/WR/WR/WR/WR/WR/WR/W初超置0000 0000上一頁我們說了,試驗中是以模式4進行,并且OC1A和OC1B引腳同時工作, 所以我們必須為OCRA|B賦比較的最大值,但是這里產(chǎn)生這樣一個問題:要為OCR1A賦值呢?還是為OCR1B賦值呢? 乂或者同時賦值?這個問題是不然 的,在視頻教程里老師曾經(jīng)說過只要為OCR1A賦值就好了。那么OCR1A要賦什么值好呢?前面我們說過,OCR1A決定了一次電平互換的 Period (中

11、文是什么忘記了),所以O(shè)CR1A的初值與我們渴求的頻率有關(guān)。那么看 看以下的公式fOCn心匕1/02 A/ (1 + OCRn)Fclk是晶振的頻率,N為分頻,F(xiàn)ocn是渴求的頻率,至于OCRN就是我們要賦得 初值,由于我們使用的是定時器1,那么重新整理一下。Fout = Fxtal / ( 2 N ( 1+OCR1A )OCR1A = ( Fxtal / Fout N 2) - 1例題:HJ-2G開發(fā)板搭配的晶振為11.0592M11Z,而分頻N為1,為了求出2K11Z的頻率, OCR!A應(yīng)該付什么值呢?OCR1A = (Fxtal/Fout N 2) - 1=(11.0592Mhz/2kh

12、z 1 2) 1= 275.46C語言:OCR1A=275;AVR單片機學(xué)習(xí)筆記-基于慧凈HJ2G AVR開發(fā)板7.2.4歸納整理說到這里基本上己經(jīng)建立了大概的概念,當然還需要理清一下過程。在編程的時 候,要執(zhí)行的步驟如下:1. 將PD4PD5設(shè)置為輸出(默認為低電平)。DDRD|=BIT|BIT(5);2. 決定比較輸出模式,試驗中為模式電平取反。TCCRlA=0x50;3. 決定方波產(chǎn)生模式位,試驗中是模式4,亦即WGM12=lo TCCR1B|=BIT:4. 決定分頻N,這里就假設(shè)去1吧,無預(yù)分頻。TCCR1B|=BIT(O);5. 在步驟3中,方波產(chǎn)生模式位為4,換句話說就是OCR1A

13、決定匹配的最大值。 這里就取例題的結(jié)果吧。OCR1A=275;725實驗-利用定時器1,以CTC模式產(chǎn)生2khz的方波。試驗中需要用到示波器,學(xué)生擁有自己的示波器確實有點不現(xiàn)實,H己可以嘗試 將頻率調(diào)低至110Hz左右,然后使用LED帶電測試PD4PD5引腳,LED會有 節(jié)奏的一閃一閃。源碼:/0701-CTC.c利用定時器1產(chǎn)生2khz的方波/當然也可以稍微修改以產(chǎn)生10Hz以下的方波,使測試LED更容易/akuei2 23-12-09include ioml6v h”include macros h/定時器1. CTC輸出化函數(shù) void CTCJmtOTCCRlA=0x50;TCCR1B=BIT(3);TCCR1B=BIT(O);/TCCRlB|=Bn(2);OCR1A=275;OCR1A=2159;/比較匹配輸出模式,電平取反方波產(chǎn)生模式位,模式4, OCR1A決定TOP值。/分頻為1/分頻為256,如果不是256分頻的話,無法實現(xiàn)輸出方波/分頻為1時,OCR1A初值為275,輸出2Khz方波/分頻為256時,OCR1A初值為2159,輸出10Hz方波/;OCR1A=21599;分頻為256時,OCR1A初值為21599,輸出1Hz方波DDRD|=BIT(4)IBIT(5);PD45引腳為輸出狀態(tài)/主函數(shù) void inainO調(diào)用CTC_ImtO函數(shù) 程式

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論