#include <TimerOne.h>
volatile int current = 0;
volatile bool direction = false;
void setup() {
Serial.begin(115200);
Timer1.initialize(100000);
Timer1.attachInterrupt(next);
attachInterrupt(digitalPinToInterrupt(2), change, RISING);
for(int i = 0; i < 9; i++){
pinMode(i+3, OUTPUT);
digitalWrite(i+3, LOW);
}
}
void next(){
digitalWrite(current + 3, LOW);
if(direction){
if(++current > 8) current = 0;
}
else{
if(--current < 0) current = 9;
}
digitalWrite(current + 3, HIGH);
}
void change(){
direction = !direction;
Serial.println("Changed direction");
}
void loop() {
}