unsigned char volatile etat = 0;
unsigned char volatile compte = 0;
unsigned char masque = 0b00100000;
void setup() {
Serial.begin(9600);
DDRB = 0b00100000;
noInterrupts();
TIMSK1 = 1;
TCCR1A = 0;
TCCR1B = 3;
/*
16 MHz = 62.5 ns (1 / 16 000 000)
Int = 62.5 ns * 65336 * pré-diviseur
Int = 4.096 ms * pré-diviseur
250 ms = 4.096 ms * pré-diviseur
250 / 4.096 = 61.03
*/
interrupts();
Serial.println("Bienvenue");
}
void loop() {
// digitalWrite(13, etat);
if (etat == 1) {
PORTB = PORTB & ~masque;
} else {
PORTB = PORTB | masque;
}
Serial.println(compte);
}
ISR(TIMER1_OVF_vect) {
compte = compte + 1;
if (compte == 8) {
compte = 0;
etat = etat ^ 1;
}
}