




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、/*定時計數(shù)器0,1,2的CTC模式徹底應用*FileName : CTC.cAuthor : 滄海麒麟Date : 2011.05.28Version : 1.0Clock Frequency :8 MHZDescription : 適用于ATmega16(L)AVR的3個定時計數(shù)器CTC模式 查詢與中斷的基本應用*/#include /常用頭文件,如有需要可以查庫文件include#include #include #include #include /#include delay.c/#include LCM1602.c#define uint unsigned int#define u
2、char unsigned char/*T/C0*/void Timer0CTC_Init(uchar temp);void Timer0CTC_NquiryMode(uchar temp);/T/C0查詢方式函數(shù)void Timer0CTC_InterruptMode(void);/T/C0中斷方式函數(shù)/*T/C2*/void Timer2CTC_Init(uchar temp);void Timer2CTC_NquiryMode(uchar temp);/T/C2查詢方式函數(shù)void Timer2CTC_InterruptMode(void);/T/C2中斷方式函數(shù)/*T/C1*/void
3、 Timer1CTC_4_Init(uchar tempH,uchar tempL);/T/C1波形產(chǎn)生模式:CTC4void Timer1CTC_12_Init(uchar tempH,uchar tempL);/T/C1波形產(chǎn)生模式:CTC12void Timer1CTC_A_NquiryMode(uchar tempH,uchar tempL);/T/C1比較匹配A查詢方式函數(shù)void Timer1CTC_B_NquiryMode(uchar tempH,uchar tempL);/T/C1比較匹配B查詢方式函數(shù)void Timer1CTC_InterruptMode(uchar tem
4、pH,uchar tempL);/T/C1中斷方式函數(shù)void main(void) /CTC產(chǎn)生1000HZ的頻率 /Timer0CTC_Init(124); /Timer2CTC_Init(124); /Timer1CTC_4_Init(0,124); Timer1CTC_12_Init(0,124); while (1);/*定時計數(shù)器的函數(shù)*/*與8位T/C0相關(guān)的寄存器1:T/C0計數(shù)寄存器TCNT0,輸出比較寄存器OCR0,定時計數(shù)器中斷屏蔽寄存器TIMSK 定時計數(shù)器中斷標志寄存器TIFR,T/C0控制寄存器TCCR02:每計數(shù)一次需要的時間是(1/Xtal)*N us 在此程序
5、中Xtal=8,N定義為與分頻系數(shù)N:1,8,64,256,1024 1 : TCCR0|=0x01;/0:無時鐘,系統(tǒng)不工作 8 : TCCR0|=0x02; 64 : TCCR0|=0x03; 256 : TCCR0|=0x04; 1024: TCCR0|=0x05; /0x06:時鐘由T0引腳輸入,下降沿觸發(fā) 0x07:時鐘由T0引腳輸入,上升沿觸發(fā) */*/void Timer0CTC_Init(uchar temp)DDRB |= 0X08;TCNT0 = 0x00; TCCR0 = 0x08|0x10|0x03; /CTC設(shè)置|OC0觸發(fā)方式的設(shè)置|預分頻設(shè)置OCR0 = temp
6、; /Foc0 = Fclk/(2N(1+OCR0)/*/void Timer0CTC_NquiryMode(uchar temp)/T/C0查詢方式函數(shù)while(!(TIFR&0x02); TIFR=0x02;OCR0 = temp;/*/void Timer0CTC_InterruptMode(void)/T/C0中斷方式函數(shù) CLI(); /disable all interrupts TCCR0 = 0x00; /stop TCNT0 = 0x00; /set count/temp=6,N=64:2000us;計數(shù)250次 TCCR0 = 0x08|0x10|0x03; /CTC設(shè)置
7、|OC0觸發(fā)方式的設(shè)置|預分頻設(shè)置 MCUCR = 0x00; GICR = 0x00; TIMSK = 0x02; /timer interrupt sources SEI(); /re-enable interrupts /SREG|=BIT(7);/開啟總中斷#pragma interrupt_handler timer0_comp_isr:iv_TIM0_COMP /20void timer0_comp_isr(void) /compare occured TCNT0=OCR0/*/*與8位T/C2相關(guān)的寄存器1:T/C2計數(shù)寄存器TCNT0,輸出比較寄存器OCR2,定時計數(shù)器中斷屏蔽
8、寄存器TIMSK 定時計數(shù)器中斷標志寄存器TIFR,T/C2控制寄存器TCCR22:每計數(shù)一次需要的時間是(1/Xtal)*N us 在此程序中Xtal=8,N定義為與分頻系數(shù)N:1,8,64,256,1024 1 : TCCR2|=0x01;/0:無時鐘,系統(tǒng)不工作 8 : TCCR2|=0x02; 32 : TCCR2|=0x03; 64 : TCCR2|=0x04; 128 : TCCR2|=0x05; 256 : TCCR2|=0x06; 1024: TCCR2|=0x07;*/*/void Timer2CTC_Init(uchar temp)DDRD |= 0X80;TCNT2 =
9、0x00; TCCR2 = 0x08|0x10|0x04; /CTC設(shè)置|OC2觸發(fā)方式的設(shè)置|預分頻設(shè)置OCR2 = temp; /Foc2 = Fclk/(2N(1+OCR2)/*/void Timer2CTC_NquiryMode(uchar temp)/T/C0查詢方式函數(shù)while(!(TIFR&0x80); TIFR=0x80;OCR0 = temp;/*/void Timer2CTC_InterruptMode(void)/T/C0中斷方式函數(shù) CLI(); /disable all interrupts TCCR2 = 0x00; /stop TCNT2 = 0x00; /se
10、t count/temp=6,N=64:2000us;計數(shù)250次 TCCR2 = 0x08|0x10|0x04; /CTC設(shè)置|OC2觸發(fā)方式的設(shè)置|預分頻設(shè)置 MCUCR = 0x00; GICR = 0x00; TIMSK = 0x80; /timer interrupt sources SEI(); /re-enable interrupts /SREG|=BIT(7);/開啟總中斷#pragma interrupt_handler timer2_comp_isr:iv_TIM2_COMP /4void timer2_comp_isr(void) /compare occured TC
11、NT2=OCR2/*/*與16位T/C1相關(guān)的寄存器1:T/C1計數(shù)寄存器TCNT1H和TCNT1L,輸出比較寄存器OCR1A(H/L)和OCR1B(H/L), 定時計數(shù)器中斷屏蔽寄存器TIMSK,定時計數(shù)器中斷標志寄存器TIFR, T/C1控制寄存器TCCR1A和TCCR1B2:每計數(shù)一次需要的時間是(1/Xtal)*N us 在此程序中Xtal=8,N定義為與分頻系數(shù)N:1,8,64,256,1024 /1 : TCCR1B=0x01;/0:無時鐘,系統(tǒng)不工作 /8 : TCCR1B=0x02; /64 : TCCR1B=0x03; /256 : TCCR1B=0x04; /1024: T
12、CCR1B=0x05; /0x06:時鐘由T1引腳輸入,下降沿驅(qū)動 0x07:時鐘由T1引腳輸入,上升沿驅(qū)動 */*/void Timer1CTC_4_Init(uchar tempH,uchar tempL)DDRD |= 0x30;TCNT1H = 0x00;TCNT1L = 0x00;TCCR1A = 0x50; /OC1A&OC1B的觸發(fā)方式設(shè)置 TCCR1B = (0 WGM13)|(1 WGM12)|0x03;/(1 WGM13)|(1 WGM12)CTC設(shè)置|預分頻設(shè)置OCR1AH = tempH; /Foc0 = Fclk/(2N(1+ICR1)OCR1AL = tempL;/
13、*/void Timer1CTC_12_Init(uchar tempH,uchar tempL)DDRD |= 0x30;TCNT1H = 0x00;TCNT1L = 0x00;TCCR1A = 0x50; /OC1A&OC1B的觸發(fā)方式設(shè)置 TCCR1B = (1 WGM13)|(1 WGM12)|0x03;/(0 WGM13)|(1 WGM12)CTC設(shè)置|預分頻設(shè)置ICR1H = tempH; /Foc0 = Fclk/(2N(1+ICR1)ICR1L = tempL;/*/void Timer1CTC_A_NquiryMode(uchar tempH,uchar tempL)/T/C
14、1比較匹配A查詢方式函數(shù)while(!(TIFR&0x10); TIFR = 0x10;OCR1AH = tempH; /Foc0 = Fclk/(2N(1+OCRnA)OCR1AL = tempL;/*/void Timer1CTC_B_NquiryMode(uchar tempH,uchar tempL)/T/C1比較匹配B查詢方式函數(shù)while(!(TIFR&0x08); TIFR = 0x08;OCR1BH = tempH; /Foc0 = Fclk/(2N(1+OCRnB)OCR1BL = tempL;/*/void Timer1CTC_InterruptMode(uchar tem
15、pH,uchar tempL)/T/C1中斷方式函數(shù) CLI(); /disable all interrupts TCNT1H = 0x00; TCNT1L = 0x00; TCCR1A = 0x50; /OC1A&OC1B的觸發(fā)方式設(shè)置 TCCR1B = (1 WGM13)|(1 WGM12)|0x03;/(0 WGM13)|(1 WGM12)CTC設(shè)置|預分頻設(shè)置 OCR1AH = tempH; /Foc0 = Fclk/(2N(1+OCRnA) OCR1AL = tempL; MCUCR = 0x00; GICR = 0x00; TIMSK = 0x18; /timer interrupt sources SEI(); /re-enable interrupts /SREG|=BIT(7);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中歷史項目式學習的設(shè)計研究
- 肝癌惡性腫瘤護理查房
- 美術(shù)考級兒童畫三級培訓
- 護理教學小組討論
- 健康教育知曉率品管圈應用實踐
- 蕁麻疹的護理常規(guī)
- S-Ramosetron-S-YM060-free-base-生命科學試劑-MCE
- 初中六德班會課件
- 交通運輸與物流行業(yè)物流行業(yè)物流園區(qū)物流園區(qū)物流大數(shù)據(jù)分析與應用報告
- Riztunitide-生命科學試劑-MCE
- 歷年全國普通話考試真題50套
- 他汀不耐受的臨床診斷與處理中國專家共識(2024)解讀課件
- 2024年7月國家開放大學法學本科《知識產(chǎn)權(quán)法》期末考試試題及答案
- 2024移動金融客戶端應用軟件安全管理規(guī)范標準
- DB43T 876.8-2015 高標準農(nóng)田建設(shè) 第8部分:科技服務
- 2025版《新亮劍》高中物理:第九章 靜電場及其應用 靜電場中的能量含答案
- 普通洗車操作流程及操作指導書
- 40000平方米人民醫(yī)院項目監(jiān)理招標文件
- 2024年遼寧電工(高級技師)高頻核心題庫300題(含解析)
- 北師大版二年級下冊豎式計算題練習200道及答案
- JC-T 902-2002 建筑表面用有機硅防水劑
評論
0/150
提交評論