Soy nuevo en el incrustados y he estado luchando con esto por días. Yo no entiendo por qué esto no funciona.
Estoy usando un ATxMega128A1. Quiero usar un temporizador de interrupción por desborde de desplazamiento a la izquierda un bit en un puerto a la siguiente pin. El temporizador funciona. Puedo ver, haga clic a través de la CNT en el simulador, y el desbordamiento de la bandera se pone, pero el ISR nunca se ejecuta (y por lo tanto, el desbordamiento de la bandera nunca se reinicio). ¿Alguien tiene alguna idea de donde me estoy equivocando? Yo más o menos copia/pega el temporizador/código de interrupción de Atmel del código de formación.
ISR(TCC0_OVF_vect)
{
LEDPORT = (LEDPORT << 1);
}
int main(void)
{
initLights();
// Set up Timer/Counter 0.
TCC0.PER = 0x10; //
TCC0.CTRLA = ( TCC0.CTRLA & ~TC0_CLKSEL_gm ) | TC_CLKSEL_DIV1_gc; //start timer with system clock
TCC0.INTCTRLA = ( TCC0.INTCTRLA & ~TC0_OVFINTLVL_gm ) | TC_OVFINTLVL_LO_gc; // Enable overflow interrupt.
// enable global interrupts:
sei();
while(true)
{
//do nothing, the timer interrupt will handle it
}
}