Estoy haciendo un proyecto que requiere una gran cantidad de PWM y he conseguido que funcionen 6 de los 9 pines compatibles con PWM, pero estoy luchando para que los últimos 3 se ejecuten.
Para hacer que los pines OC1A-C ejecuten un PWM, hice esto:
DDRB = 0xE0 //Pins B7,B6 & B5 to output
TCCR1A |= (1 << COM1A1) | (1 << COM1A0) |(1 << COM1B1) | (1 << COM1B0) | (1 << COM1C1) | (1 << COM1C0) | (1 << WGM10);
TCCR1B |= (1 << WGM12) | (1 << CS11);
//Test PWM Values
OCR1A = 0x10;
OCR1B = 0x20;
OCR1C = 0x30;
Sin embargo, cuando intento hacer lo mismo para OC2A y OC2B, no sucede nada:
DDRB = 0x10 //B4 to output
DDRD = 0x02 //D1 to output
TCCR2A |= (1 << COM2A1) | (1 << COM2A0) |(1 << COM2B1) | (1 << COM2B0) | (1 << WGM20);
TCCR2B |= (1 << WGM22) | (1 << CS21);
//Test PWM Values
OCR2A = 0x40;
OCR2B = 0x50;
Entonces, ¿qué más necesito configurar para que el PWM de esos pines funcione?