nevertime 发表于 2016-3-10 16:19:35

简单的pwm的输出问题

在一个项目中用到了DA,准备用pwm实现,项目中用到的单片机是at90can128,但是发现pwm输出周期性正确。以100ms周期为例,前30ms的pwm输出正常,后70ms输出低电平,然后重复这个过程。改变占空比,发现占空比越高情况越好,占空比大于10%基本上100ms内都可以被pwm覆盖了。

找了半天问题,无果,换了一个atmega64试试,也是一样,提一下atmega64测试程序:



#include <iom64v.h>
#define XTAL    16000000L

int main(void)
{

    unsigned int i = 0;

    DDRB= 0xff;      
    PORTB = 0x00;               

    TCCR1A =(1<<WGM10) | (1<<COM1A1) | (1<<COM1A0);
    TCCR1B =(1<<CS11) | (1<<WGM12);

    OCR1AL = 100;
    OCR1AH = 0;

    for (;;)
    {
    }
   
    return 0;
}

结果跟at90can128的一样。十分想不通啊,用的外部晶振16MHz。过来拜高人啊。

lcw_swust 发表于 2016-3-10 16:50:13

用数字示波器测的?
因为时间较长的档位采样率会变低,所以有时会采不到
页: [1]
查看完整版本: 简单的pwm的输出问题