bool e[16];
void setup() {
pinMode(2, INPUT);
pinMode(7, OUTPUT);
cli(); // desabilita interrupções
TCCR1A = 0;
// colocando o timer no modo CTC (Clear Timer on Compare-match)
TCCR1B &= ~(1 << WGM13);
TCCR1B |= (B00000001 << WGM12);
// setando prescaler do timer para 64 (16 mHz / 64 = 250 kHz)
TCCR1B &= ~(1 << CS12);
TCCR1B |= (1 << CS11);
TCCR1B |= (1 << CS10);
TCNT1 = 0;
OCR1A = 50000; // dois décimos de 250 mil para o Compare-match
TIMSK1 = (1 << OCIE1A);
sei(); // habilita interrupções
asm volatile(
"loop: \n\t" //inicio do loop infinito
"nop \n\t"
"rjmp loop \n\t" );
}
ISR(TIMER1_COMPA_vect){ // Rotina de Serviço de Interrupção (ISR) do Timer
if(digitalRead(2) == HIGH){
digitalWrite(7, HIGH);
}else{
digitalWrite(7, LOW);
}
}