int state=0;
unsigned preTime=0;
int pattern[4]={0x04,0x02,0x01,0x07};
void setup() {
DDRB|=(1<<PB0);
DDRB|=(1<<PB1);
DDRB|=(1<<PB2);
DDRD&=~(1<<PD2);
attachInterrupt(digitalPinToInterrupt(2),stateChange,FALLING);
PORTB&=~(1<<PB2)|~(1<<PB1)|~(1<<PB0);
}
void stateChange(){
if(millis()-preTime>=300){
if(state<=3){
PORTB = pattern[state];
state++;
preTime=millis();
if(state>3){
state=0;
}
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}