Tengo una pequeña pregunta sobre el indicador TOVn ubicado en el registro TIFRn .
La hoja de datos dice que, si el contador TCNTn se desborda, entonces el indicador TOVn ubicado en el registro TIFRn se establecerá en 1 . (en el mismo ciclo de reloj se produjo el desbordamiento).
El código para manejar dicho evento es el siguiente:
/* Check if TOV1 flag is set */
if (TIFR1 & _BV(TOV1)) {
/* Since TOV1 is set, we know we missed an overflow interrupt */
/* Handle the event... */
// ... timer_ovf_cnt++;
/* Prevent ISR to be called, because we already handled the overflow */
TIFR1 = _BV(TOV1); // .. but TOV1 is already set in TIFR1?
}
Pero lo que me confunde es: ¿por qué debo configurar el bit TOV1 cuando ya está configurado por hardware?
¿La configuración de la bandera TOV1 en TIFR1 a 1 por mano de usuario deshabilita la interrupción del temporizador? (Incluso, si el indicador TOV1 ya está configurado por hardware?)
EDIT : encontró la respuesta: ¿Borrar bits de marca escribiendo 1?