int input_pin = 2;
volatile int valume;
void setupTimer3(){
noInterrupts();
TCCR3A = 0;
TCCR3B = 0;
TCNT3 = 0;
OCR3A = 15624;
TCCR3B |= (1 << WGM32);
TCCR3B |= (1 << CS32) | (1 << CS30);
TIMSK3 |= (1 << OCIE3A);
interrupts();
}
void setup(){
pinMode(input_pin, INPUT);
attachInterrupt(digitalPinToInterrupt(input_pin), state, RISING);
DDRC = 0xFF;
setupTimer3();
Serial.begin(9600);
}
void loop(){
PORTC = (1<<PC4) | (1<<PC5) | (1<<PC6) | (1<<PC7);
delay(1000);
PORTC = (0<<PC4) | (0<<PC5) | (0<<PC6) | (0<<PC7);
delay(1000);
}
void state(){
valume = digitalRead(input_pin);
Serial.print("Input reading: ");
Serial.println(valume);
}
ISR(TIMER3_COMPA_vect){
PORTC ^= (1<<PC0) | (1<<PC1) | (1<<PC2) | (1<<PC3);
}