Tengo un micro 12F683 y este es mi primer programa que usa el nuevo MPLAB con el compilador XC8.
He configurado el temporizador1 para que se dispare aproximadamente cada ms. Por ahora necesitaría un LED para encender y apagar, pero debo hacer esto con una declaración IF
porque luego agregaré otras acciones allí. Aquí está el código de interrupción:
#define PWM GPIObits.GP5
void interrupt High_Priority_Interrupt(void) {
if (CCP1IF) {
if (PWM) {
PWM = 0; //NEVER excuted
}
else {
PWM = 1; //ALWAYS executed
}
CCP1IF = 0;
}
}
Por alguna razón, la salida nunca se establece en 1. Si reemplazo el código completo con PWM^=1;
, funciona como un encanto. Pero necesito hacerlo con la declaración if
. ¿Qué estoy haciendo mal?