C++ Atmega2560在正边缘设置PWM和中断

C++ Atmega2560在正边缘设置PWM和中断,c++,arduino,avr,atmega,C++,Arduino,Avr,Atmega,我尝试在同一个计时器上执行两个操作:PWM和正边缘中断。我可以使两者单独工作,但似乎不能使它们一起工作。我正在Arduino板上使用atmega2560芯片,并尝试在Timer1上执行此操作,这是执行PWM的代码: TCCR1A = 0; TCCR1B = 0; TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1B1); TCCR1B |= (1<<WGM12)|(1<<WGM13)|(1<<

我尝试在同一个计时器上执行两个操作:PWM和正边缘中断。我可以使两者单独工作,但似乎不能使它们一起工作。我正在Arduino板上使用atmega2560芯片,并尝试在Timer1上执行此操作,这是执行PWM的代码:

TCCR1A = 0;
TCCR1B = 0;
TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1B1);
TCCR1B |= (1<<WGM12)|(1<<WGM13)|(1<<CS10);
ICR1 = 29999;
OCR1A = 0;
OCR1B = 0;
TCCR1A=0;
TCCR1B=0;

TCCR1A |=(1您应该为正边缘检测和pwm提供单独的代码,因为您说过可以使它们单独工作。这样可以更容易地看到您正在做什么以及它们为什么不一起工作,而不是让我们没有工作。pwm和中断的实现取决于环境和您的ic、 但是一般的算法都是一样的,很可能你在代码中忽略了一些次要的东西,所以我会把它们包括进来,以获得更多的响应