搜索
bottom↓
回复: 3

ATmega128 使用定时3 快速PWM模式不能产生波形

[复制链接]

出0入0汤圆

发表于 2015-5-20 10:53:33 | 显示全部楼层 |阅读模式
void Timer3_PWM()
{
    TCCR3A |= (1<<COM3A1)|(1<<COM3B1)|(1<<WGM31)|(1<<WGM30);      //通道A设置为比较输出、快速PWM模式
    TCCR3B |= (1<<WGM33)|(1<<WGM32)|(1<<CS30);      //采用模式15,快速PWM模式,1分频,OCR3A为top,值为0XFFFF,决定pwm频率;
    TCNT3L = 0x00;     //设置定时器3的初始值
    TCNT3H = 0x00;
    TIMSK  = 0x00;
    ETIMSK = 0x00;
   
    OCR3AL = 0xFF;
    OCR3AH = 0xFF;
   
    OCR3BL = 0x00;    //OCR3B调节占空比50%
    OCR3BH = 0x80;
   
    DDRE=0xFF;
}

void main()
{      
    Timer3_PWM();
    #asm("sei") // 开放全局中断   
    while(1)
    {        

    }
}
就这么简单的,怎么就没有输出波形呢???谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2015-5-20 11:15:07 | 显示全部楼层
哈哈哈,知道问题了,16位寄存器赋值,先给高位再给低位
头像被屏蔽

出0入0汤圆

发表于 2015-5-20 14:59:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2015-5-26 17:19:27 | 显示全部楼层
mega64的,拿去改改吧


void PWMT1_Init(void)
{
TCCR1B|=(0<<CS02)|(1<<CS01)|(1<<CS00);
TCCR1A|=(0<<WGM11)|(1<<WGM10);
TCCR1B|=(0<<WGM13)|(1<<WGM12);
//ABC 3个通道公用TCCR1(分为TCCR1A TCCR1B TCCR1C 3字节)
//以上为公共配置
//以下是个体配置

TCCR1A|=(1<<COM1A1)|(1<<COM1A0);//对应A路
TCCR1A|=(1<<COM1B1)|(1<<COM1B0);//对应B路
TCCR1A|=(1<<COM1C1)|(1<<COM1C0);//对应C路

OCR1AH=0xFF;OCR1AL=0x80;//对应A路
OCR1BH=0xFF;OCR1BL=0x80;//对应B路
OCR1CH=0xFF;OCR1CL=0x80;//对应C路

DDRB|=1<<PB5;//pwm输出引脚允许
DDRB|=1<<PB6;//pwm输出引脚允许
DDRB|=1<<PB7;//pwm输出引脚允许
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 23:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表