Como algunos de ustedes saben, Atmel proporciona un marco de software (principalmente como parte de Atmel Studio) que proporciona controladores y ejemplos y se actualiza de forma más o menos regular.
En una actualización reciente, explícitamente señalan que es importante borrar manualmente el indicador de interrupción de desbordamiento en la función de devolución de llamada de interrupción.
// * \subsection xmega_tc_qs_ovf_setup_code Example code
// *
// * Add a callback function that will be executed when the overflow interrupt
// * trigger.
// * \code
static void my_callback(void)
{
// User code to execute when the overflow occurs here
// THIS WAS ADDED IN LAST UPDATE
// Important to clear Interrupt Flag
tc_clear_overflow(&TCC0);
// THIS WAS ADDED IN LAST UPDATE
}
//\endcode
Según la hoja de datos de XMEGAA:
OVFIF se borra automáticamente cuando se ejecuta el vector de interrupción correspondiente. La bandera también puede ser borrada por escribiendo un uno en su ubicación de bit.
¿Existe un escenario / motivo por el que se requiera borrar manualmente la bandera?