




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AVR的PWM波(1)一个实例例:这个程序是用IICC的向导导生成的,很很简单。 T0是作为普通通8位定时器器,频率1000KHz,每每次中断将PPB0(piin1)状态态反转,产生生的是2000KHz占空空比50的的方波。 T1是作为工作作模式9:相相频可调PWWM波发生器器,频率初始始化16KHHz,占空比比50。请请注意: TCNT1是TT0的定时器器计数值,就就是每个定时时器时钟加11,和普通定定时器的计数数值寄存器作作用一样。 OCR1A作为为比较的TOOP值。 OOCR1B作作为匹配输出出值。 当TCNT1的的值增加到OOCR1B相相等时,OCC1B(piin18)清清零,就是对对
2、应低电平; 然后TCNT11继续增加到到OCR1AA(就是TOOP)的值,然然后TCNTT1开始减少少,这个中间间,OC1BB(Pin118)状态不不变;当TCCNT1减少少到OCR11B相等时,OOC1B(ppin18)置置1,就是对对应高电平。 然后TCNNT1继续减减少到0 x000(就是BBOTTOMM),然后TTCNT1又又开始增加,这这个中间,OOC1B(ppin18)状状态不变。 OCR1B的值值与OCR11A的比值就就是PWM的的占空比! 所以这个值值必须比OCCR1A小。当OOCR1B为为0时,PWWM波就一直直为低电平(相相当于占空比比为0);当当OCR1BB为OCR11A
3、时,PWWM波就一直直为高电平(相相当于占空比比为100);当OCR11B为OCRR1A的一半时时,PWM波波就是占空比比为50。 你可可以修改OCCR1B的值值,然后重新新下载程序运运行,看看占占空比的改变变;也可以修修改OCR11A的值,然然后重新下载载程序运行,看看看频率的改改变,不过要要注意修改OOCR1A时,同时时注意OCRR1B的值不不要比OCRR1A大。 模式式9算是PWWM生成中最最复杂的一种种,只要你理理解了这个,对对别的几种PPWM都好理理解。TCNT0 = 0 xB00; /sset coountOCR0 = 0 x50; 即使工作在noormal模模式下,这个个OCR0
4、仍仍然在和TCCNT0进行行比较,一旦旦匹配后,就就会产生中断断或者改变OOC0脚上的的电平(产生生PWM)。改改变这个值,就就会改变中断断发生的时间间,或者改变变OC0脚上上的方波的频频率了。 T1定时器1的的模式9,相相频修正模式式,可以用来来产生波形非非常完整的PPWM波。TTCNT1设设置初值,增增加到0 xFFFFF的时时间,然后从从0开始计数数,这个理解解是正确的。可可以画一个波波形图对应理理解一下:画画一个占空比比50的方方波,高电平平上平分为11、2两段,低低电平上平分分为3、4两两段。 1就是TCCNNT1从初值值加,-0 xFFFFF阶段,这这个阶段OCCR1B为高高电平;
5、 2就是TCCNNT1从0 xx00加-OCR11B阶段,这这个阶段为高高电平;匹配配后,变为低低电平 3就是TCCNNT1从OCCR1B加-OCRR1A阶段,这这个阶段为低低电平; 4就是TCCNNT1从OCCR1A减-OCR1BB阶段,这个个阶段为低电电平;匹配后后,变为高电电平 TCCNT1的的初值,就是是保证第一段段高电平的时时间,这样才才能形成一个个完整周期的的方波。而且且,这个初值值应该根据OOCR1B的的值而设,就就是TCCNNT1 = 0 xfffff-OCRR1B+1;这样才能保保证时间的匹匹配。 如果是模式9,那那么每次变化化后,算出占占空比,算出出OCR1BB的值并赋值值
6、,会自动在在下一个周期期改变占空比比为新值。eeasy。重重点是:每次次给OCR11B赋值,会会在 下一个个 周期改变变占空比。 /实例:利用用pwm控制制led光暗暗及峰鳴器音音量大小/ICC-AAVR appplicaation buildder : 2005-4-18 12:466:03/ Targget : M16/ Crysstal: 4.00000Mhz#includde #includde #definee uchaar unssignedd charr #definee uintt unsiigned int void poort_innit(vooid); void tiim
7、er0_init(void); void innit_deevicess(voidd); void deelay_sshort(uint t); uchar sscan_kkey(vooid); void poort_innit(vooid)PORTA = 0 x000;DDRA = 0 xx00;PORTB = BIT(PB3);DDRB = BIIT(PB33);PORTC = 0 x000; /mm103 ooutputt onlyyDDRC = 0 xx00;PORTD = 0 x000;DDRD = 0 xx00;/ WGM: PWM Phasee corrrect / desiir
8、ed vvalue: 1KHzz / actuual vaalue: 0.980KHHz (-22.0%) void tiimer0_init(void)TCCR0 = 0 x000; /sstopTCNT0 = 0 x011; /sset coountOCR0 = 0 xxFF; /sset coompareeTCCR0 = 0 x622; /sstart timerr ; 相位位修正, 88分頻 /call this routiine too inittializze alll periipheraalsvoid innit_deevicess(voidd)/stop errannt in
9、tterruppts unntil sset uppCLI(); /dissable all iinterrruptsport_innit();timer0_init();MCUCR = 0 x000;GICR = 0 xx00;TIMSK = 0 x000; /ttimer interrrupt sourccesSEI(); /re-enablle intterruppts/all pperiphheralss are now iinitiaalizedd void deelay_sshort(uint t) / 短延時 uinnt i; forr (i=00;i 0) if (kkey=1
10、1) / 減少佔空比比 OCR00_V -= 10; OCR00 = OCCR0_V; ; if (kkey=22) / 增加佔空比比 OCR00_V += 10; OCR00 = OCCR0_V; ; if (kkey=33) / 全黑,佔空空比為1000% OCR00_V = 0 xff; OCR00 = OCCR0_V; ; ;實驗板接線: PB3 - JJA.1 及及 JM PD0 - KK1 PD1 - KK2 PD2 - KK3 (2)相关详细细理论说明:符号定义: BOTTOM 计数器计到到0 x00000 时即达达到BOTTTOMMAX 计数器器计到0 xFFFFF ( 十进制
11、的的655355) 时即达达到MAXTOP 计数器器计到计数序序列的最大值值时即达到TTOP。 TOPP 值可以为为固定值0 xx00FF、00 x01FFF或 0 x003FF,或或是存储于寄寄存器 OCCR1A或ICRR1里的数值值,具体有赖赖于工作模式式 分5种工工作类型 1 普通模模式 WGMM1=0 跟跟51的普通通模式差不多多,有TOVV1溢出中断断标志,发生生于MAX(0 xFFFFF)时 11 采用内部部计数时钟 用于 IICP捕捉输输入场合-测量脉宽宽/红外解码码 (捕捕捉输入功能能可以工作在在多种模式下下,而不单单单只是普通模模式) 22 采用外部部计数脉冲输输入 用于 计
12、数数,测频 其其他的应用,采采用其他模式式更为方便,不不需要像511般费神 2 CCTC模式 比较匹配配时清零定时时器模式 WGM1=4,12 跟51的自自动重载模式式差不多 1 用于输输出50%占占空比的方波波信号 2 用于产产生准确的连连续定时信号号 WGM1=4时, 最最大值由OCCR1A设定,TTOP时产生生OCF1AA比较匹配中中断标志 WGM1=12时,最最大值由ICCF1设定, TOP时产产生ICF11输入捕捉中中断标志 -如果TTOP=MAAX,TOPP时也会产生生TOV1溢溢出中断标志志 注:WGMM=15时,也也能实现从OOC1A输出方波波,而且具备备双缓冲功能能 计算公式
13、: fOCnn=fcllk_IOO/(2*NN*(1+TTOP) 变变量N 代表表预分频因子子(1、8、664、2566、10244),T2多多了(32、1128)两级级。 3 快快速PWM模模式 WGMM1=5,66,7,144,15 单单斜波计数,用用于输出高频频率的PWMM信号(比双双斜波的高一一倍频率) 都都有TOV11溢出中断,发发生于TOPP时不是MMAX,跟普普通模式,CCTC模式不不一样 比比较匹配后可可以产生OCCF1x比较较匹配中断. WGM11=5时, 最大值为00 x00FFF, 8位分分辨率 WGM11=6时, 最大值为00 x01FFF, 9位分分辨率 WGM11=
14、7时, 最大值为00 x03FFF,10位分分辨率 WGM1=14时,最最大值由ICCF1设定, TOP时产产生ICF11输入捕捉中中断 (单缓缓冲) WGM1=15时,最最大值由OCCR1A设定,TTOP时产生生OCF1AA比较匹配中中断(双缓冲冲,但OC11A将没有PPWM能力,最最多只能输出出方波) 改变TOPP值时必须保保证新的TOOP值不小于于所有比较寄寄存器的数值值 注注意,即使OOCR1A/B设为为0 x00000,也会输输出一个定时时器时钟周期期的窄脉冲,而而不是一直为为低电平 计计算公式:ffPWM=ffclk_IIO/(N*(1+TOOP) 4 相相位修正PWWM模式 WW
15、GM1=11,2,3,10,111 双双斜波计数,用用于输出高精精度的,相位位准确的,对对称的PWMM信号 都都有TOV11溢出中断,但但发生在BOOOTOM时时 比比较匹配后可可以产生OCCF1x比较较匹配中断. WGM11=1时, 最大值为00 x00FFF, 8位分分辨率 WGM11=2时, 最大值为00 x01FFF, 9位分分辨率 WGM11=3时, 最大值为00 x03FFF,10位分分辨率 WGM1=10时,最最大值由ICCF1设定, TOP时产产生ICF11输入捕捉中中断 (单缓缓冲) WGM1=11时,最最大值由OCCR1A设定,TTOP时产生生OCF1AA比较匹配中中断(双
16、缓冲冲,但OC11A将没有PPWM能力,最最多只能输出出方波) 改改变TOP值值时必须保证证新的TOPP值不小于所所有比较寄存存器的数值 可可以输出0%100%占空比的PPWM信号 若若要在T/CC 运行时改改变TOP 值,最好用用相位与频率率修正模式代代替相位修正正模式。若TTOP保持不不变,那么这这两种工作模模式实际没有有区别 计计算公式:ffPWM=ffclk_IIO/(2*N*TOPP) 5 相相位与频率修修正PWM模模式 WGMM1=8,99 双双斜波计数,用用于输出高精精度的、相位位与频率都准准确的PWMM波形 都都有TOV11溢出中断,但但发生在BOOOTOM时时 比比较匹配后可可以产生OCCF1x比较较匹配中断. WGM1=8时,最大大值由ICFF1设定, TOP时产产生ICF11输入捕捉中中断 (单缓缓冲) WGM1=9时,最大大值由OCRR1A设定,TTOP时产生生OCF1AA比较匹配中中断(双缓冲冲,但OC11A将没有PPWM能力,最最多只能输出出方波) 相相频修正修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2024年秋季版)七年级历史下册 第二单元 辽宋夏金元时期:民族关系发展和社会变化 9 宋代经济的发展教学实录 新人教版
- 池河镇九年级化学上册 2.3 构成物质的微粒(Ⅱ)-原子和离子(原子结构示意图和离子)教学实录 (新版)粤教版
- 高中生物 第二节 自由组合定律 1教学实录 浙科版必修2
- 2025年胶型氯化聚乙烯项目建议书
- Module 4 Unit 2 He invented this bicycle.(教学设计)-2024-2025学年外研版(一起)英语四年级上册
- 端午节作文之端午节活动横幅标语
- DB34-T 4747-2024 农村社区服务站建设指南
- 面点制作工艺流程
- 2023一年级数学下册 四 牧童-认识图形教学实录 青岛版六三制
- 非财务人员财务培训
- 八年级道德与法治说课稿省公开课获奖课件说课比赛一等奖课件
- 2025高考语文文言文阅读复习:高频实词分类汇编
- 小个体劳务合同范本
- JBT 14585-2024 信号蝶阀(正式版)
- 文具店合作意向协议书
- 中国神话故事绘本火神祝融
- 五星级酒店前厅管理常用表格
- 《养老护理员》-课件:老年人安全防范及相关知识
- 茶楼棋牌经营管理方案
- 水准测量记录数据自动生成表
- 2024年宜都市高新技术产业投资有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论