AVR产生PWM波实例程序.docx
《AVR产生PWM波实例程序.docx》由会员分享,可在线阅读,更多相关《AVR产生PWM波实例程序.docx(9页珍藏版)》请在第壹文秘上搜索。
1、VR的PWM波(D一个实例:这个程序是用ICC的向导生成的,很简单。TO是作为普通8位定时器,频率100KHz,每次中断将PBo(pin1.)状态反转,产生的是200KHZ占空比50%的方波“口是作为工作模式9:相频可谓叫Y波发生潺,频率初始化16KHz,占空比50%。请注意:TCVn是TO的定时器计数值,就是每个定时滞时钟加1,和普通定时器的计数值存放焉作用一样。OCR1.A作为比较的ToP值。OCR1.B作为匹配输出值。当TCNTI的值增加到OCRIB相等时,OC1.B(Pin18)清零,就是对应低电平;然后TeNTI继续增加到OCRIA(就是TOP)的值,然后TCNTI开始减少,这个中间
2、,OC1.B(Pin1.8)状态不变:当TCNTI减少到OCRIB相等时,OC1.B(Pin18)置1,就是对应高电平。然后TCNT1.继续减少到OXoo(就是BoTTOM),然后TCNT1.又开始增加,这个中间,OC1.BCpin1.8)状态不变。OCR1.B的值与OCR1.A的比值就是PMY的占空比!所以这个值必须比OCR1.A4.当OCR1.B为0时,PwY波就-直为低电平(相当于占空比为0):当OCRIB为OCRiA时,PHY波就一直为高电平(相当于占空比为100):当OCR1.B为OCRIA的半时,IMI波就是占空比为50%。你可以修改OCR1.B的值,然后重新下栽程序运行,看看占空
3、比的改变:也可以修改OCR1.A的值,然后重新下载程序运行,看看频率的改变,不过要注意修改OCR1.A时,同时注意OCRIB的值不要比OCR1.A大模式9算是PWM生成中最品杂的一种,只要你理解了这个,对别的几种P式都好理解.TCNTO=OxBO;/setcountOCRO=0x50:即使工作在norma1.模式卜I这个OCRO仍然在和TCNTo进行比较,一旦匹配后,就会产生中断或者改变OCO脚上的电平(产生PWM)。改变这个值,就会改变中断发生的时间,或者改变OCO脚上的方波的嫌率J。TI定时潺1的模式9,相频修正模式,可以用来产生波形非常完整的PWM波。TCNTI设置初值,增加到OXFFF
4、F的时间,然后从0开始计数,这个理解是正确的.可以画一个波形图对应理解一下:画一个占空比50%的方波,高电平上平分为1、2两段,低电平上平分为3、4两段。1就是TCCNT1.从初值加,-0xFHT阶段,这个阶段OCR1.B为高电平;2就是TCCNT1.从OXoO加一OCR1B阶段,这个阶段为高电平:匹配后,变为低电平3就是TCCNT1.从OCR1.B加一OCR1A阶段,这个阶段为低电平:4就是TCCNT1.从OCR1.A减一OCR1B阶段,这个阶段为低电平:匹配后,变为高电平TCCNT1.的初值,就是保证第一段高电平的时间,这样才能形成一个完整周期的方波。而且,这个初值应该根据OCR1.B的值
5、而设,就是TCCNTI=OXffff-OCRIB+1:这样才能保证时间的匹配,如果是模式9,那么每次变化后,算出占空比,獴出OCRIB的值并赋值,会自动在卜.一个周期改变占空比为新值.,easy.0.重点是:每次给OCR1.B赋值,会在下一个周期改变占空比。实例:利用PwIn控制Ied光暗及峰呜器音量大小/ICC-AVRapp1.icationbui1.der:2005-4-1812:46:03/Target:M16/Crysta1.:4.OOOQMhzIfinc1.udeJfinc1.udeIfdefineucharunsignedcharWefineuintunsignedintvoidP
6、or1.iniI(void);voidtiinert)init(void);voidinit_devices(voi1.):voidde1.ay_ShOrt(Uintt);ucharscan_kcy(void);voidPOrt_init(void)(PORTA=0x00;DDRA=0x00:PORTB=BIT(PB3);DDRB=BIT(PB3):DDRC=0x00:PORTD-0x00;DDRD=0x00:/WGM:Phasecorrect/desiredva1.ue:IKHz/actua1.va1.ue:0.980KHz(-2.0%)voidtimerinit(void)TCCRO三0x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVR 产生 PWM 实例 程序
