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?