版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、/*AVR定時計數(shù)器0,1,2的相位可調PWM模式徹底應用*FileName : adjustablePWM.cAuthor : 滄海麒麟Date : 2011.05.28Version : 1.0Clock Frequency :8 MHZDescription : 適用于ATmega16(L)AVR的3個定時計數(shù)器相位頻率PWM模式 查詢與中斷的基本應用*/#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ù)器的函數(shù)*/*與8
5、位T/C0相關的寄存器1:T/C0計數(shù)寄存器TCNT0,輸出比較寄存器OCR0,定時計數(shù)器中斷屏蔽寄存器TIMSK 定時計數(shù)器中斷標志寄存器TIFR,T/C0控制寄存器TCCR02:每計數(shù)一次需要的時間是(1/Xtal)*N us 在此程序中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ā)
6、*/*/void Timer0PCPWM_Init(uchar temp)/Foc0pwm = Fclk/(510N)DDRB |= 0X08;TCNT0 = 0x00; TCCR0 = 0x40|0x20|0x03; /PWM設置|OC0觸發(fā)方式的設置|預分頻設置 OCR0 = temp;/在此程序中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; /*/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設置|OC0觸發(fā)方式的設置|預分頻設置 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相關的寄存器1:T/C2計數(shù)寄存器TCNT0,輸出比較寄存器OCR2,定時計數(shù)器中斷屏蔽寄存器TIMSK 定時計數(shù)器中斷標志寄存器
9、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 Timer2PCPWM_Init(uchar temp)/Foc0pwm = Fclk/(510N)DDRD |= 0X80;TCNT2
10、 = 0x00; TCCR2 = 0x40|0x20|0x04; /PWM設置|OC2觸發(fā)方式的設置|預分頻設置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;計數(shù)250次 TCCR2 = 0x40|0x20|0x04; /PWM設置|OC2觸發(fā)方式的設置|預分頻設置 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相關的寄存器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
13、; /256 : TCCR1B=0x04; /1024: TCCR1B=0x05; /0x06:時鐘由T1引腳輸入,下降沿驅動 0x07:時鐘由T1引腳輸入,上升沿驅動 */*/void Timer1PCPWM_10_Init(uint top,uint temp)DDRD |= 0x30;TCNT1H = 0x00;TCNT1L = 0x00;TCCR1A = 0x80|0x20|(1 << WGM11)|(0 << WGM10); /OC1A&OC1B的觸發(fā)方式設置|PWM設置 TCCR1B = (1 << WGM13)|(0 <<
14、WGM12)|0x03;/PWM設置|預分頻設置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ā)方式設置 TCCR1B = (1 << WGM13)|(0 << WGM12)
15、|0x03;/PWM設置|預分頻設置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ā)方式設置|PWM設置 TCCR1B = (1 << WGM13)|(1 << WGM12)|0x03;/PWM設置|預分頻設置 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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美食廣場服務員工作總結
- 100萬噸綠色清潔能源頁巖氣液化項目可行性研究報告寫作模板-申批備案
- 2025-2030全球電池保護板行業(yè)調研及趨勢分析報告
- 2025年全球及中國工業(yè)級4-苯氧基苯酚行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國桁架式門式起重機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國AI虛擬人交互一體機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球心理情感咨詢服務平臺行業(yè)調研及趨勢分析報告
- 2025年全球及中國工業(yè)絕熱冷卻器行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球重餾分輪胎熱解油行業(yè)調研及趨勢分析報告
- 2025-2030全球消費電子注塑機行業(yè)調研及趨勢分析報告
- 福建省泉州市晉江市2024-2025學年七年級上學期期末生物學試題(含答案)
- 2025年春新人教版物理八年級下冊課件 第十章 浮力 第4節(jié) 跨學科實踐:制作微型密度計
- 貨運車輛駕駛員服務標準化培訓考核試卷
- 財務BP經(jīng)營分析報告
- 三年級上冊體育課教案
- 2024高考物理二輪復習電學實驗專項訓練含解析
- 2024年全國統(tǒng)一高考英語試卷(新課標Ⅰ卷)含答案
- 高中英語:倒裝句專項練習(附答案)
- 2025屆河北衡水數(shù)學高三第一學期期末統(tǒng)考試題含解析
- 2024信息技術數(shù)字孿生能力成熟度模型
- 交通銀行股份有限公司操作風險管理政策
評論
0/150
提交評論