AVR单片机定时器TC0相位修正PWM模式输出实例.docx

AVR单片机定时器TC0相位修正PWM模式输出实例.docx

ID:59095348

大小:31.17 KB

页数:2页

时间:2020-09-15

AVR单片机定时器TC0相位修正PWM模式输出实例.docx_第1页
AVR单片机定时器TC0相位修正PWM模式输出实例.docx_第2页
资源描述:

《AVR单片机定时器TC0相位修正PWM模式输出实例.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、相位修正PWM模式(WGM01:0=1)为用户提供了一个获得高精度相位修正PWM波形的方法。此模式基于双斜坡操作。计时器重复地从BOTTOM计到MAX,然后又从MAX倒退回到BOTTOM。在一般的比较输出模式下,当计时器往MAX计数时若发生了TCNT0与OCR0的匹配,OC0将清零为低电平;而在计时器往BOTTOM计数时若发生了TCNT0与OCR0的匹配,OC0将置位为高电平。工作于反向输出比较时则正好相反。与单斜坡操作相比,双斜坡操作可获得的最大频率要小。但由于其对称的特性,十分适合于电机控制。相位修正PWM模式的PWM精度固定为8比特。计时器不断地累加直到MAX,然后开始减计数

2、。在一个定时器时钟周期里TCNT0的值等于MAX。时序图可参见下图。图中TCNT0的数值用柱状图表示,以说明双斜坡操作。本图同时说明了普通PWM的输出和反向PWM的输出。TCNT0斜坡上的小横条表示OCR0与TCNT0的比较匹配。PWM产生过程:定时器启动后,从0开始计数到255,加1后由255减1到0,在正向加1过程中当TNCT0与OCR0相等时,OC0清0,在反向减1的过程中,当TNCT0等于OCR0,OC0置位,改变比较寄存器OCR0的数值就改变了输出PWM的占空比。//在PB3引脚上输出PWM控制发光二极管的渐亮,渐灭(代码来自轻松玩转avr单片机c语言cd)#includ

3、e #defineucharunsignedchar #defineuintunsignedintuintcount;/*********以下是延时函数*********/voidDelay_ms(uintxms){  inti,j;   for(i=0;i

4、=(1<

5、) PORTB&=(0<

6、********定时器0初始化********/voidtimer0_init(){  TCCR0=(0<

7、(1<

8、(1<

9、(1<

10、(1<

11、(0<

12、         SREG=0x80;                  //使能全局中断}/*********以下是主函数*********/voidmain(void)           {  port_init(); timer0_init();  while(1) {  for(count=0;count<256;count++)   //OCR=0时,LED最亮,然后逐渐变暗  {   OCR0=count;                    //比较匹配寄存器赋值   Delay_ms(20);                  //延时一段时间,以观察效果  }

13、    Delay_ms(3000);          //LED最暗时,延时一段时间  for(count=255;count>0;count--)     //OCR=255时,LED最暗,然后逐渐变亮  {   OCR0=count;                         Delay_ms(20);                        }    Delay_ms(3000);        //LED最亮时,延时一段时间 } }小企鹅diy科学探究学习网更多文章转到 文章分类单片机

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。