unsigned int RedOrBlue; void init() { TRISA = 0b00000000; // Configuration de la broche RA0 comme entrée PORTA = 0b00000000; // On met toutes les sorties du PORTA à "0" TRISB = 0b00000000; // Configuration du PORTB comme sortie PORTB = 0b00000000; // On met toutes les sorties du PORTB à "0" CMCON = 0x07; //ANSEL = 0b00000000; // Configuration du mode numérique (digital) INTCON.GIE = 1; // On active les interruptions générales INTCON.PEIE = 1; // On active les interrutpions périphériques TMR1ON_bit = 1; T1CKPS0_bit = 0; T1CKPS1_bit = 0; TMR1CS_bit = 0; TMR1IE_bit = 1; // On active les interruptions du Timer0 TMR1IF_bit = 0; // Le drapeau de débordement est à zéro TMR1L = 0x00; // On initialise le Compteur du Timer1 à zéro! TMR1H = 0x00; RedOrBlue = 0; } void interrupt() { if ((TMR1IF_bit ==1) && (RedOrBlue == 1)) { RedOrBlue = 0; delay_ms(200); TMR1IF_bit = 0; } if ((TMR1IF_bit == 1) && (RedOrBlue == 0)) { RedOrBlue = 1; delay_ms(200); TMR1IF_bit = 0; } } void main() { init(); while (1) { if (RedOrBlue == 1) { LATB = 0; LATA = 0xFF; delay_ms(50); LATA = 0x00; RedOrBlue = 1; delay_ms(50); } if (RedOrBlue == 0) { LATA = 0; LATB = 0xFF; delay_ms(50); LATB = 0x00; RedOrBlue = 0; delay_ms(50); } } }