avr使用范例--定时器实现pwm功能.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR使用范例??定时器实现PWM功能 木页关键词:什么是pwmpwm原理pwm控制pwm芯片pwm讯片机 氓片机pwm控制应用 pwm电路pwm输出pwm调制 脉宽调制PWM是开关型稳压电源中的术语。这是按稳压的控制方式分类的.除了 PWM型,还有 PFM型和PWM. PFM混合型。脉宽宽度调制式(PWM〉开关型稳压电路是在控制电路输出频率不变的 情况下,通过电压反馈调整其占空比.从而达到稳定输出电压的目的。 通俗的说PWM就是波形,波形的波峰以波谷的比例关系成为占空比?我们可以通过PWM控制电机, 音址控制,模拟控制等。 AVR总片机的定时器可以轻松实现PWM功能。megal6和mega32的timerO是和timer2都具有 PWM功能.timerO和timer2都为8位定时器。timer2为界步操作定时器.在操作过程中要等待寄存器状 态更改完成。详情参看数据手册:8位有pwm操作的异步操作定时器timer2o 下图设定使用timer0來实现PWM功能。PWM电机控制:。 ICCAVR Application Builder [M16] CPU I Ports TimeiO | Timerl | Timer21 UART | SPI | Analog | Initialisationp Use TimerO n畑 off 厂 Overflow interrupt 冈Desired value Units|知J^rescale s创沁 (64Actual value (error%)1.002 KHz (0.2%)R与虚忍仪器 Initialisation p Use TimerO n畑 off 厂 Overflow interrupt 冈 Desired value Units |知J ^rescale s创沁 (64 Actual value (error%) 1.002 KHz (0.2%) R与虚忍仪器 TCNTO 0x8D Compare OCRO 0x73 pCO output Cleared 区 Clear on compare 区 Compare interrupt e:64 ERO initialize- GM: Normal sired value: 1 KHz actual value: 1.002KHZ (0^2%) vo|d timerO CR0= OKOO; //stop CNT0= 0x8D; //set count OCRO = Qk73; //set compare TCCR0= 0x23;//start timer rag ma interrupt^handler timerO_comp」sr: 20 void timerO^comp」sr(void) //compare occured TCNTO=OCRO } Ok IOptionsPreviewCancel Ok I Options Preview Cancel OCO output mode设定f pwm输出控制选择:正常的端口操作.不与OCO相连接?比较匹配发 生时OCO取反.比较匹配发生时OC0清零.比较匹配发生时OC0宜位。 Waveform mode设定j‘波形产生模式:比较匹配输出模式?快速PWM模式?相位修正PWM模式。 更详细的内容请参看数据手册。 看看程序代码 //ICC-AVR application builder : 2006-11-25 0:15:12 // Target : M16 // Crystal: 7. 3728Mhz itinclude #include void port^init(void) { PORTA = 0x00; DDRA = 0x00; DDRB = 0x08; //PB3为PWM输出,非常重要,否则无法输出波形 DDRB = 0x00; PORTC = 0x00; //ml03 output only DDRC = 0x00; PORTD = 0x00; DDRD = 0x00; } //TIMERO initialize - prescale:64 // WGM: Normal // desired value: lKHz // actual value: 1. 002KHz (0. 2%) void timer0_init(void) { TCCRO = 0x00; //stop TCNTO = 0x8D; //set count /*TCNT0*/ OCRO = 0x73; //set compare /*OCRO*/ TCCRO = 0x23; //start timer /*TCCR0*/ } ttpragma interrupt_handler timer0_

文档评论(0)

yuxiufeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档