想用atmega48产生相位修正的pwm,datasheet里说的是在bottom置位中断标志TOVn,因此我想在中断里改变占空比,但是就是不出来波形,不知道问题出在哪,各位大侠帮忙给看看,谢谢!
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
SIGNAL(SIG_OVERFLOW0)
{
OCR0A =128; //比较设定值
OCR0B=128;
}
void timer_init()
{
TCCR0A=0b10110001; //升序比较匹配时OC0A=0,降序时比较匹配时置OC0A=1,TOP固定等于255
TCCR0B=0b00000001; //时钟不分频,一旦设定时钟,TCNT0就开始不断的计数
TIMSK0=1<<0; //使能定时器0中断
}
void port_init()
{
DDRD=(1<<6)|(1<<5); //端口方向设置为输出才有效
}
void device_init()
{
timer_init();
port_init();
}
int main(void)
{
device_init();
while (1);
}
|