void setup() {
pinMode(8,OUTPUT);
Serial.begin(9600);
TCCR1A = 0;
TCCR1B = 0;
TCCR1B = _BV(0) | _BV(2); // Faccio il prescaler a 1024
//cioè scrivo nel reg TCCR1B 00000101 E OTTENGO 16000000/1024=15khZ
TCNT1 = 0XFFF0; //questo è il precarico
TIMSK1 |= (1 << TOIE1);// devo scrivere 1 in questo registro alla
//pos TOIE1 che corrisponde al bit di pos 0 vedi datasheet
//per attivare l interrupt
}
void loop() {//nel loop non ci va niente
}
ISR(TIMER1_OVF_vect) { //funzione per attivare interrup quanto il
//contatore arriva T1 arriva al top.
TCNT1 = 0xFFF0;// quando il contatore arrivaal massimo cioe 2^16 cioè
// 65525 cioè FFFF viene riprecaricato di nuovo il valore cioe 0x8AB0
digitalWrite(8, !digitalRead(8));
}