Estoy intentando iniciar PWM en ATmega2560, pero no sé por qué no funciona
Así es como se ve mi código:
#include <avr/io.h>
#include <util/delay.h>
void set_pwm_duty_cycle(char duty);
int main()
{
int dutycycle;
while(1)
{
for(dutycycle = 0; dutycycle < 200; dutycycle++)
{
set_pwm_duty_cycle(dutycycle);
_delay_ms(50);
}
}
}
void set_pwm_duty_cycle(char duty)
{
TCCR2A |= _BV(WGM21) | _BV(WGM20); // Fast PWM mode
TCCR2A |= _BV(COM2A1); // Clear OC2A on Compare Match, set OC2A at BOTTOM
OCR2A = duty;
DDRB |= _BV(PB4); // set PB4 as output
}