AVR定時(shí)計(jì)數(shù)器0-1-2的CTC模式徹底應(yīng)用_第1頁
AVR定時(shí)計(jì)數(shù)器0-1-2的CTC模式徹底應(yīng)用_第2頁
AVR定時(shí)計(jì)數(shù)器0-1-2的CTC模式徹底應(yīng)用_第3頁
AVR定時(shí)計(jì)數(shù)器0-1-2的CTC模式徹底應(yīng)用_第4頁
AVR定時(shí)計(jì)數(shù)器0-1-2的CTC模式徹底應(yīng)用_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、/*定時(shí)計(jì)數(shù)器0,1,2的CTC模式徹底應(yīng)用*FileName : CTC.cAuthor : 滄海麒麟Date : 2011.05.28Version : 1.0Clock Frequency :8 MHZDescription : 適用于ATmega16(L)AVR的3個(gè)定時(shí)計(jì)數(shù)器CTC模式 查詢與中斷的基本應(yīng)用*/#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í)計(jì)數(shù)器的函數(shù)*/*與8位T/C0相關(guān)的寄存器1:T/C0計(jì)數(shù)寄存器TCNT0,輸出比較寄存器OCR0,定時(shí)計(jì)數(shù)器中斷屏蔽寄存器TIMSK 定時(shí)計(jì)數(shù)器中斷標(biāo)志寄存器TIFR,T/C0控制寄存器TCCR02:每計(jì)數(shù)一次需要的時(shí)間是(1/Xtal)*N us 在此程序

5、中Xtal=8,N定義為與分頻系數(shù)N:1,8,64,256,1024 1 : TCCR0|=0x01;/0:無時(shí)鐘,系統(tǒng)不工作 8 : TCCR0|=0x02; 64 : TCCR0|=0x03; 256 : TCCR0|=0x04; 1024: TCCR0|=0x05; /0x06:時(shí)鐘由T0引腳輸入,下降沿觸發(fā) 0x07:時(shí)鐘由T0引腳輸入,上升沿觸發(fā) */*/void Timer0CTC_Init(uchar temp)DDRB |= 0X08;TCNT0 = 0x00; TCCR0 = 0x08|0x10|0x03; /CTC設(shè)置|OC0觸發(fā)方式的設(shè)置|預(yù)分頻設(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;計(jì)數(shù)250次 TCCR0 = 0x08|0x10|0x03; /CTC設(shè)置

7、|OC0觸發(fā)方式的設(shè)置|預(yù)分頻設(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計(jì)數(shù)寄存器TCNT0,輸出比較寄存器OCR2,定時(shí)計(jì)數(shù)器中斷屏蔽

8、寄存器TIMSK 定時(shí)計(jì)數(shù)器中斷標(biāo)志寄存器TIFR,T/C2控制寄存器TCCR22:每計(jì)數(shù)一次需要的時(shí)間是(1/Xtal)*N us 在此程序中Xtal=8,N定義為與分頻系數(shù)N:1,8,64,256,1024 1 : TCCR2|=0x01;/0:無時(shí)鐘,系統(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è)置|預(yù)分頻設(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;計(jì)數(shù)250次 TCCR2 = 0x08|0x10|0x04; /CTC設(shè)置|OC2觸發(fā)方式的設(shè)置|預(yù)分頻設(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計(jì)數(shù)寄存器TCNT1H和TCNT1L,輸出比較寄存器OCR1A(H/L)和OCR1B(H/L), 定時(shí)計(jì)數(shù)器中斷屏蔽寄存器TIMSK,定時(shí)計(jì)數(shù)器中斷標(biāo)志寄存器TIFR, T/C1控制寄存器TCCR1A和TCCR1B2:每計(jì)數(shù)一次需要的時(shí)間是(1/Xtal)*N us 在此程序中Xtal=8,N定義為與分頻系數(shù)N:1,8,64,256,1024 /1 : TCCR1B=0x01;/0:無時(shí)鐘,系統(tǒng)不工作 /8 : TCCR1B=0x02; /64 : TCCR1B=0x03; /256 : TCCR1B=0x04; /1024: T

12、CCR1B=0x05; /0x06:時(shí)鐘由T1引腳輸入,下降沿驅(qū)動(dòng) 0x07:時(shí)鐘由T1引腳輸入,上升沿驅(qū)動(dòng) */*/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è)置|預(yù)分頻設(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è)置|預(yù)分頻設(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è)置|預(yù)分頻設(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論