




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、/*AVR定時(shí)計(jì)數(shù)器0,1,2的相位可調(diào)PWM模式徹底應(yīng)用*FileName : adjustablePWM.cAuthor : 滄海麒麟Date : 2011.05.28Version : 1.0Clock Frequency :8 MHZDescription : 適用于ATmega16(L)AVR的3個(gè)定時(shí)計(jì)數(shù)器相位頻率PWM模式 查詢與中斷的基本應(yīng)用*/#include <iom16v.h> /常用頭文件,如有需要可以查庫文件include#include <avrdef.h>#include <macros.h>#include <strin
2、g.h>#include <math.h>/#include "delay.c"/#include "LCM1602.c"#define uint unsigned int#define uchar unsigned char/*T/C0*/void Timer0PCPWM_Init(uchar temp);void Timer0PCPWM_NquiryMode(uchar temp);/T/C0查詢方式函數(shù)void Timer0PCPWM_InterruptMode(uchar temp);/T/C0中斷方式函數(shù)/*T/C2*/voi
3、d Timer2PCPWM_Init(uchar temp);void Timer2PCPWM_NquiryMode(uchar temp);/T/C2查詢方式函數(shù)void Timer2PCPWM_InterruptMode(uchar temp);/T/C2中斷方式函數(shù)/*T/C1*/void Timer1PCPWM_10_Init(uint top,uint temp);/T/C1波形產(chǎn)生模式:CTC4void Timer1PCPWM_11_Init(uint top,uint temp);/T/C1波形產(chǎn)生模式:CTC12void Timer1PCPWM_A_NquiryMode(uin
4、t temp);/T/C1比較匹配A查詢方式函數(shù)void Timer1PCPWM_B_NquiryMode(uint temp);/T/C1比較匹配B查詢方式函數(shù)void Timer1PCPWM_InterruptMode(uint temp);/T/C1中斷方式函數(shù)void main(void) /占空比為1/5 Timer0PCPWM_Init(51);/245Hz Timer2PCPWM_Init(51); Timer1PCPWM_10_Init(1249,250);/50HZ /Timer1PWM_14_Init(1249,250); while (1);/*定時(shí)計(jì)數(shù)器的函數(shù)*/*與8
5、位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 在此程序中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ā)
6、*/*/void Timer0PCPWM_Init(uchar temp)/Foc0pwm = Fclk/(510N)DDRB |= 0X08;TCNT0 = 0x00; TCCR0 = 0x40|0x20|0x03; /PWM設(shè)置|OC0觸發(fā)方式的設(shè)置|預(yù)分頻設(shè)置 OCR0 = temp;/在此程序中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; /*/void Time
7、r0PCPWM_NquiryMode(uchar temp)/T/C0查詢方式函數(shù)while(!(TIFR&0x02); TIFR=0x02;OCR0 = temp;/Focnpwm = Fclk/N(1+TOP)/*/void Timer0PCPWM_InterruptMode(uchar temp)/T/C0中斷方式函數(shù) CLI(); /disable all interrupts TCCR0 = 0x00; /stop TCNT0 = 0x00; TCCR0 = 0x40|0x20|0x03; /PWM設(shè)置|OC0觸發(fā)方式的設(shè)置|預(yù)分頻設(shè)置 OCR0 = temp; MCUCR
8、= 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ù)器中斷屏蔽寄存器TIMSK 定時(shí)計(jì)數(shù)器中斷標(biāo)志寄存器
9、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 Timer2PCPWM_Init(uchar temp)/Foc0pwm = Fclk/(510N)DDRD |= 0X80;TCNT2
10、 = 0x00; TCCR2 = 0x40|0x20|0x04; /PWM設(shè)置|OC2觸發(fā)方式的設(shè)置|預(yù)分頻設(shè)置OCR2 = temp; /Focnpwm = Fclk/N(1+TOP)/*/void Timer2PCPWM_NquiryMode(uchar temp)/T/C2查詢方式函數(shù)while(!(TIFR&0x80); TIFR=0x80;OCR2 = temp;/*/void Timer2PCPWM_InterruptMode(uchar temp)/T/C2中斷方式函數(shù) CLI(); /disable all interrupts TCCR2 = 0x00; /stop
11、TCNT2 = 0x00; /set count/temp=6,N=64:2000us;計(jì)數(shù)250次 TCCR2 = 0x40|0x20|0x04; /PWM設(shè)置|OC2觸發(fā)方式的設(shè)置|預(yù)分頻設(shè)置 OCR2 = temp; 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
12、_isr(void) /compare occured TCNT2=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
13、; /256 : TCCR1B=0x04; /1024: TCCR1B=0x05; /0x06:時(shí)鐘由T1引腳輸入,下降沿驅(qū)動(dòng) 0x07:時(shí)鐘由T1引腳輸入,上升沿驅(qū)動(dòng) */*/void Timer1PCPWM_10_Init(uint top,uint temp)DDRD |= 0x30;TCNT1H = 0x00;TCNT1L = 0x00;TCCR1A = 0x80|0x20|(1 << WGM11)|(0 << WGM10); /OC1A&OC1B的觸發(fā)方式設(shè)置|PWM設(shè)置 TCCR1B = (1 << WGM13)|(0 <<
14、WGM12)|0x03;/PWM設(shè)置|預(yù)分頻設(shè)置ICR1 = top; /Focnpwm = Fclk/(2N*TOP)OCR1A = temp;OCR1B = temp;/*/void Timer1PCPWM_11_Init(uint top,uint temp)DDRD |= 0x30;TCNT1H = 0x00;TCNT1L = 0x00;TCCR1A = 0x80|0x20|(1 << WGM11)|(1 << WGM10); /OC1A&OC1B的觸發(fā)方式設(shè)置 TCCR1B = (1 << WGM13)|(0 << WGM12)
15、|0x03;/PWM設(shè)置|預(yù)分頻設(shè)置OCR1A = top; /Focnpwm = Fclk/(2N*TOP)OCR1B = temp;/說明還有8 9 10位相位修正PWM可用/*/void Timer1PCPWM_A_NquiryMode(uint temp)/T/C1比較匹配A查詢方式函數(shù)while(!(TIFR&0x10); TIFR = 0x10;OCR1A = temp; /Focnpwm = Fclk/(2N*TOP)/*/void Timer1PCPWM_B_NquiryMode(uint temp)/T/C1比較匹配B查詢方式函數(shù)while(!(TIFR&0x
16、08); TIFR = 0x08;OCR1B = temp; /Focnpwm = Fclk/(2N*TOP)/*中斷方式函數(shù)視具體情況而定*/void Timer1PCPWM_InterruptMode(uint temp)/T/C1中斷方式函數(shù) CLI(); /disable all interrupts DDRD |= 0x30; TCNT1H = 0x00; TCNT1L = 0x00; TCCR1A = 0xA0|(1 << WGM11)|(1 << WGM10); /OC1A&OC1B的觸發(fā)方式設(shè)置|PWM設(shè)置 TCCR1B = (1 << WGM13)|(1 << WGM12)|0x03;/PWM設(shè)置|預(yù)分頻設(shè)置 OCR1A = temp; OCR1B = temp; /Focnpwm = Fclk/(2N*TOP) MCUCR = 0x00; GICR = 0x00; TIMSK = 0x18; /timer interrupt sources SEI(); /re-enable in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)環(huán)境下的農(nóng)業(yè)電商機(jī)遇試題及答案
- 家具設(shè)計(jì)中的功能性與美觀性兼顧考核試題及答案
- 智能網(wǎng)聯(lián)汽車的發(fā)展生態(tài)試題及答案
- 職業(yè)素質(zhì)筆試題及答案大全
- 幼兒園基礎(chǔ)數(shù)學(xué)技能掌握題試題及答案
- 自主品牌在新能源汽車市場中的表現(xiàn)試題及答案
- 奇妙科技面試題及答案
- 旋律的情感與表現(xiàn)力分析試題及答案
- 電商物流在農(nóng)產(chǎn)品銷售中的應(yīng)用試題及答案
- 筑施工安全新規(guī)學(xué)習(xí)試題及答案
- GA/T 751-2024公安視頻圖像屏幕顯示信息疊加規(guī)范
- 租地蓋大棚合同協(xié)議
- 自體輸血知識培訓(xùn)課件
- 人教A版高一下冊必修第二冊高中數(shù)學(xué)8.6.2直線與平面垂直【課件】
- 小學(xué)生涯課件
- 西藏拉薩中學(xué)2024-2025學(xué)年高三第二學(xué)期英語試題4月月考試卷含解析
- GB/T 45421-2025城市公共設(shè)施非物流用智能儲(chǔ)物柜服務(wù)規(guī)范
- 檔案相關(guān)法律法規(guī)知識復(fù)習(xí)試題及答案
- 漢語方言與地方文化認(rèn)同的關(guān)系研究論文
- 西北四?。兾魃轿髑嗪幭模?025屆高三下學(xué)期第一次聯(lián)考數(shù)學(xué)試卷含答案
- 旅游大類《服務(wù)禮儀》2026年版廣西高等職業(yè)教育考試(新職教高考)《服務(wù)禮儀》模擬試卷(第35套)
評論
0/150
提交評論