#define LED 5
#define POT A4
volatile int c = 1;
volatile int val = 0;
volatile int n = 0;
volatile bool num = 0;
volatile bool pot = 0;
volatile bool lin = 0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
cli();
TCCR1A = 0;
TCCR1B = 0;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS10) | (1 << CS12);
OCR1A = 15625 - 1;
TIMSK1 |= (1 << OCIE1A);
sei();
}
void loop() {
if (num) {
Serial.println(n);
num = 0;
n++;
}
if (pot) {
while(pot){
analogWrite(LED, analogRead(POT) / 4);}
}
if (lin){
digitalWrite(LED_BUILTIN, HIGH);
delay(100);
digitalWrite(LED_BUILTIN, LOW);
lin = 0;
}
}
ISR(TIMER1_COMPA_vect) {
switch (c) {
case 1:
num = 1;
digitalWrite(LED, LOW);
break;
case 2:
lin=1;
break;
case 3:
pot = 1;
break;
case 4:
pot = 0;
digitalWrite(LED, LOW);
break;
case 5:
digitalWrite(LED, HIGH);
break;
}
c++;
if (c > 5) c = 1;
}