简单的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。过来拜高人啊。
用数字示波器测的?
因为时间较长的档位采样率会变低,所以有时会采不到
页:
[1]