#define set0(r,b) r&= ~(1<<b)
#define set1(r,b) r |= 1<<b
#define test(r,b) ( r&(1<<b) )
bool start = false;
void setup() {
//button
set0(DDRB, 5); //input
set1(PORTB, 5); //high
//right led
set1(DDRD, 0); //output
set1(PORTD,0);
set1(DDRD, 1); //output
set1(PORTD,1);
set1(DDRD, 2); //output
set1(PORTD,2);
//middle
set1(DDRD, 3); //output
set1(PORTD,3);
set1(DDRD, 4); //output
set1(PORTD,4);
set1(DDRD, 5); //output
set1(PORTD,5);
//left
set1(DDRB, 0); //output
set1(PORTB,0);
set1(DDRB, 1); //output
set1(PORTB,1);
set1(DDRB, 2); //output
set1(PORTB,2);
Serial.begin(9600);
Serial.println("fdf");
}
void loop() {
if(test(PINB, 5) == 0 )
{
start = true;
}
if(start == true)
{
red();
delay(3000);
yellow();
delay(3000);
green();
delay(3000);
off();
start = false;
}
}
void off()
{
set1(PORTB, 0); //high
set1(PORTB, 1); //high
set1(PORTB, 2); //high
set1(PORTD,3);
set1(PORTD,4);
set1(PORTD,5);
set1(PORTD,0);
set1(PORTD,1);
set1(PORTD,2);
}
void red()
{
set1(PORTB, 0); //high
set1(PORTB, 1); //high
set0(PORTB, 2); //high
}
void yellow()
{
set1(PORTD,3);
set0(PORTD,4);
set0(PORTD,5);
}
void green()
{
set1(PORTD,0);
set1(PORTD,1);
set0(PORTD,2);
}