unsigned char volatile uc = 0;
void setup() {
Serial.begin(9600);
// Configurer AN0 et AN1 en entrée
DDRC = 00; // Tous les ports du registre "C" sont en entrée.
// Configurer DIO8 @ DIO13 en sorties (DELS).
DDRB = 0xFF;
// Configurer AN0 et AN1 afin de générer des interruptions IOC.
// PCINT8 et PCINT9 configurées par le registre PCIE1
PCICR = 0x02;
PCMSK1 = 0x03;
// Activer les interruptions globales
SREG |= 0x80;
}
void loop() {
// La valeur de la variable globale uc est assignée
// au port "D" du microcontrôleur.
PORTB = uc;
// Écrire la valeur de la variable uc sur le port série.
Serial.println(uc);
// Attendre 500 ms,
delay(500);
}
ISR(PCINT1_vect) {
// La valeur du port "C" du microcontrôleur est assignée
// à la variable globale uc.
uc = PINC;
// Inverser l'état de la DEL du Arduino (LED_BUILTIN)
PORTB ^= 0x20;
}