Intentando tener el modo PWM rápido cuando TOP == ORCA
.
FuncionabienconOCA
toggle(midiendolafrecuenciacorrecta),peronofuncionaenmodonoinversor.
cli();
// Fast PWM Mode
TCCR2A = 0;
TCCR2A |= _BV(WGM20) | _BV(WGM21) | _BV(COM2A0) | _BV(COM2A1); // Inverting mode fails
//TCCR2A |= _BV(WGM20) | _BV(WGM21) | _BV(COM2A1); // Non-Inverting mode fails
//TCCR2A |= _BV(WGM20) | _BV(WGM21) | _BV(COM2A0); // Toggle mode OK
// Prescaler set to 1024 (p.162)
TCCR2B = 0;
TCCR2B |= _BV(CS20) | _BV(CS21) | _BV(CS22) | _BV(WGM22);
// Enable interrupt on counter match
TIMSK2 |= _BV(OCIE2A);
OCR2A = 127;
sei();
Actualizar con más información:
MCU = Atmega328. En el modo de no inversión acabo de obtener un 1 estable en la salida y el modo de inversión da un 0 lógico. Estaba esperando ver la frecuencia
$$ F = 16 * 10 ^ 6 / (1024 * 127) = 123Hz $$