AVR使用范例-定时器实现PWM功能_第1页
AVR使用范例-定时器实现PWM功能_第2页
AVR使用范例-定时器实现PWM功能_第3页
AVR使用范例-定时器实现PWM功能_第4页
AVR使用范例-定时器实现PWM功能_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、唉AVR使用班范例-定败时器实现P捌WM功能笆本页关键词霸: 什么是氨pwm p疤wm原理 阿pwm控制昂 pwm芯斑片 pwm袄 单片机 背单片机pw八m控制应用吧 pwm电伴路 pwm坝输出 pw白m调制 捌脉宽调制P扒WM是开关坝型稳压电源败中的术语。败这是按稳压半的控制方式佰分类的,除百了PWM型啊,还有PF柏M型和PW奥M、PFM坝混合型。脉澳宽宽度调制敖式(PWM拜)开关型稳敖压电路是在翱控制电路输邦出频率不变的情况下,凹通过电压反伴馈调整其占埃空比,从而坝达到稳定输奥出电压的目的。疤E。摆通俗的说P颁WM就是波坝形,波形的笆波峰以波谷捌的比例关系安成为占空比暗,我们可以斑通过PW

2、M稗控制电机,奥音量控制,傲模拟控制等埃。半p。癌AVR单片邦机的定时器艾可以轻松实吧现PWM功跋能。meg耙a16和m巴ega32靶的time昂r0是和t背imer2巴都具有PW艾M功能,t斑imer0按和time班r2都为8靶位定时器。伴timer吧2为异步操八作定时器,盎在操作过程伴中要等待寄碍存器状态更办改完成。详坝情参看数据稗手册:8位艾有pwm操笆作的异步操罢作定时器t柏imer2佰。拌P。按下图设定使啊用time扳r0来实现案PWM功能板。PWM电斑机控制:。傲OC0 o伴utput爱 mode百 设定了p颁wm输出控胺制选择白:正常的端坝口操作,不凹与OC0 胺相连接, 俺比较

3、匹配发皑生时OC0吧 取反, 扮比较匹配发背生时OC0颁 清零, 摆比较匹配发扒生时OC0俺 置位。哀M。百Wavef敖orm m拌ode设定白了波形产生按模式扒:比较匹配蔼输出模式,挨快速PWM邦 模式,相扒位修正PW岸M 模式。拔更详细的内拌容请参看数癌据手册。皑3。懊看看程序代肮码:阿 般/ICC案-AVR 笆appli碍catio肮n bui袄lder 芭: 200皑6-11-懊25 0:15:12百X。伴/ Ta矮rg艾et : 办M16澳/ 瓣Cryst盎al背: 7.3艾728Mh把z阿#incl敖ude 翱#incl颁ude 澳void 靶port_init(耙void)暗 P

4、ORT邦A = 0胺x00;芭 DDRA胺 = 0八x00;安 白DDRB 邦 = 0 x蔼08; /岸/PB3为吧PWM输出霸,非常重要啊,否则无法背输出波形瓣9。癌 DDRB盎 = 0隘x00;凹 PORT背C = 0袄x00; 白/m10佰3 out氨put o案nly稗U。百 DDRC靶 = 0背x00;百 PORT傲D = 0颁x00;昂 DDRD俺 = 0百x00;般/TIM盎ER0 i矮ni耙tialize - 白presc版ale:6傲4拔c。盎/ WG翱M: 盎Norma霸l般/ de扮sired案 valu氨e: 1K坝Hz半/ ac癌tual 案value艾: 1.拔00

5、2KH俺z (0.唉2%)艾6。拔void 癌timer搬0_ini案t(voi翱d)稗 TCCR霸0 = 0敖x00; 佰/sto傲p霸 TCNT败0 = 0板x8D; 傲/set唉 coun白t稗 /*TC懊NT0*/芭u。爱 OCR0巴 = 0版x73; 笆 /se巴t com吧pare 邦/*OCR霸0*/邦R。八 TCCR般0 = 0俺x23; 哎/sta拔rt ti拔mer暗 /*TCCR0*/皑k。哎#prag澳ma in般terru懊pt_ha背ndler背 time霸r0_co瓣mp_is哀r:20佰P。罢void 傲timer摆0_com般p_isr啊(void捌)跋 /c

6、o按mpare班 occu奥red T胺CNT0=艾OCR0澳#prag百ma in板terru扮pt_ha吧ndler罢 time岸r0_ov拔f_isr板:10柏W。摆void 罢timer矮0_ovf扮_isr(俺void)爱 TCNT哀0 = 0扳x8D; 唉/rel摆oad c唉ounte背r val爸ue昂6。袄/cal艾l thi胺s rou挨tine 扳to in斑itial懊ize a瓣ll pe板riphe胺rals暗2。半void 盎init_摆devic哀es(vo哎id)半 /st败op er跋rant 绊inter稗rupts埃 unti凹l set靶 up绊I。斑

7、 CLI(扮); /吧disab笆le al佰l int懊errup耙ts扳q。熬 port啊_init傲();懊 time绊r0_in霸it();鞍 MCUC耙R = 0半x00;岸 GICR = 0靶x00;柏 TIMS肮K = 0袄x03; 挨/tim捌er in扒terru稗pt so艾urces罢 绊/*TIM按SK*/爸X。肮 SEI(翱); /碍re-en把able inter蔼rupts /al胺l per绊ipher百als a白re no胺w ini笆tiali坝zed拜J。罢void 跋main(岸void)捌 靶/*敖加上这些,拔程序就可以奥运行了。*奥/碍Z。埃 in

8、it拜_devi靶ces()斑;佰 whil奥e(1) ;百程序运行效啊果:八波形从PB爸3输出:斑看看几个关般键的寄存器邦的意义:柏TCNT0暗:定时器计巴数值,定时翱过程中不断拜增大,溢出敖后重新置数般,开始下一拌轮。 俺H。阿OCR0摆:定时器比罢较的值,当癌TCNT0办 OCR般0时,会产坝生time哎r0_co盎mp_is稗r中断。 板f。疤TCCR0癌:控制ti把mer0的寄存器,这摆里0 x23把代表的是:叭 扮波形产生模摆式为普通模俺式,比较匹笆配发生时O白C0 清零隘,clkI霸/O/64盎 ( 来自埃预分频器)拜,详细内容案请查看数据手册。爸V。癌TIMSK熬:定时器中百断

9、选项,这里允许ti佰mer0比皑较中断,溢傲出中断。 阿y。白预分频器:吧预分频器是疤独立运行的敖。也就是说笆,其操作独班立于T/C扮 的时钟选摆择逻辑,且安它由T/C叭1 与 T澳/C0 共败享。由于预伴分频器不受啊T/C 时背钟选择的影吧响,预分频皑器的状态需要包含预分颁频时钟 被半用到何处这扮样的信息。奥一个典型的艾例子发生在芭定时器使能傲并由预分频器驱动(6佰 CS癌n2:0 傲 1)的暗时候:从计拌时器使能到般第一次开始罢计数可能花拜费 1 到般N+1个系爱统时钟周期坝, 其中N胺 等于预分搬频因子(8按、64、2版56 或1拔024)。稗 隘O。哎PWM的工捌作流程:挨初始化,定霸时器开始工绊作,TCN百T0逐渐增暗大,在预分坝频这么多个白时钟周期里艾变化一次。矮 哎h。安输出比较寄白存器包含一挨个8 位的袄数据,不间袄断地与计数瓣器数值TC板NT0 进般行比较。匹鞍配事件可以矮用来产生输鞍出比较中断搬,或者用来傲在OC0 办引脚上产生柏波形。 敖s。版TCNT0傲溢出,溢出佰中断用于在坝OC0上产瓣生波形,置哎位或者清零捌。 办1。扳TCNT0办

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论