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

上传人:206****923 文档编号:91844446 上传时间:2019-07-02 格式:DOCX 页数:2 大小:31.11KB
返回 下载 相关 举报
AVR单片机定时器TC0相位修正PWM模式输出实例_第1页
第1页 / 共2页
AVR单片机定时器TC0相位修正PWM模式输出实例_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《AVR单片机定时器TC0相位修正PWM模式输出实例》由会员分享,可在线阅读,更多相关《AVR单片机定时器TC0相位修正PWM模式输出实例(2页珍藏版)》请在金锄头文库上搜索。

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

3、)#include#define uchar unsigned char#define uint unsigned intuint count;/*以下是延时函数*/void Delay_ms(uint xms) int i,j; for(i=0;ixms;i+) for(j=0;j1140;j+) ; /*以下是端口初始化函数*/void port_init() DDRB|=(1PB3); /PB3配置为输出(为1时用或符号|)PORTB&=(0PB3); /PB3输出0(为0时与符号&)/*定时器0初始化*/void timer0_init()TCCR0=(0WGM01)|(1WGM00)

4、|(1COM01)|(1COM00)|(1CS00)|(0CS02); / T/C0工作于相位修正PWM模式,不分频 /在升序计数时,发生比较匹配将置位CR0,降序计数时,发生比较匹配将清零OC0 OCR0=0; /比较匹配寄存器初值, SREG=0x80; /使能全局中断/*以下是主函数*/void main(void) port_init();timer0_init();while(1)for(count=0;count0;count-) /OCR=255时,LED最暗,然后逐渐变亮OCR0= count; Delay_ms(20); Delay_ms(3000); /LED最亮时,延时一段时间小企鹅diy 科学探究学习网更多文章转到 http:/ 文章分类单片机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号