byte roj;
byte azu;
byte blan;
int tr = 0;
bool xd = false;
void setup(){
//modo = blanco
//incrementar = azul
//decrementar = rojo
DDRD = 0xFF;
DDRB = 0x00;
PORTD = 0x81;
}
void loop(){
roj = PINB & 0x08;
azu = PINB & 0x10;
blan = PINB & 0x20;
if (blan == 0){
tr = tr + 1;
delay(100);
if (tr == 4){
tr = 0;
}
}
if (azu == 0 && roj == 0){
PORTD = 0x01;
}
if (tr == 1){
if (azu == 0){
PORTD = PORTD - 0x01;
delay(100);
}
if (roj == 0){
PORTD = PORTD + 0x01;
delay(100);
}
}
if (tr ==0){
if(xd == true){
PORTD = 0x00;
xd = false;
}
if (roj == 0){
PORTD = (PORTD << 0x01| PORTD>> 0x01);
delay(100);
}
if (azu == 0){
PORTD = ((PORTD + 0x10));
delay(100);
}
}
if (tr == 2){
xd = true;
if(roj == 0){
PORTD = PORTD <<1 | PORTD;
PORTD = PORTD & 0x81;
delay(100);
}
if (azu == 0){
PORTD = PORTD >>1;
PORTD = PORTD | 0x81;
delay(100);
}
}
if (tr == 0){
PORTD = 0x80 ;
delay(250);
PORTD = 0x40 ;
delay(250);
PORTD = 0x20;
delay (250) ;
PORTD = 0x10;
delay(250);
PORTD = 0x08;
delay(250);
PORTD = 0x04;
delay(250);
PORTD = 0x02;
delay(250);
PORTD = 0x01;
delay(100);
PORTD = 0x01;
delay(100);
PORTD = 0x02;
delay(100);
PORTD = 0x04;
delay(100);
PORTD = 0x08;
delay(100);
PORTD = 0x10;
delay(100);
PORTD = 0x20;
delay(100);
PORTD = 0x40;
delay(100);
PORTD = 0x80;
delay(100);
}
}