打印
[AVR单片机]

mega16做的快速PWM 问题怪异

[复制链接]
1356|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lanlandeya|  楼主 | 2014-4-29 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


上图中可以看到我用OCR1B=1025 PROTEUS仿真出的波形没问题,

上图中我吧OCR1B改成1024,波形就出错了,高电平约几个us

为什么会出这样的问题呢?
我打算做频率可调的发生器,但是经常发现调整出错



我用mega16做个波形发生器,
选用快速PWM OCR1A作为TOP  OCR1B比较
给OCR1B赋值  1024  1025时  仿真结果差异很大,是在不解,请大侠帮忙  
我也正在找英文PDF查原因

代码如下  很简单的测试程序
#include <mega16.h>  
#include <delay.h>

   

void main(void)
{      
        DDRD.4=1;  
        OCR1A=4096;
        OCR1B=1025;
           TCCR1A=0x23;//快速PWM TOP OCR1A
           TCCR1B=0x19;  
    while (1)
       {   
            


       };  

}

相关帖子

沙发
lanlandeya|  楼主 | 2014-4-29 19:30 | 只看该作者
大虾们
走过路过
不要错过

使用特权

评论回复
板凳
lantian510| | 2014-5-12 21:26 | 只看该作者
void c1_quick_pwm(void)
{
    TCCR1A|=(1<<COM1A1)|(1<<WGM10);
        TCCR1B|=(1<<WGM12)|(1<<CS12);
        OCR1AH=0;
        OCR1AL=0;
        TIMSK|=(1<<OCIE1A);
}
我的初始化是这个样子的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝