byte ms = 10;
void setup() {
// Set pins for OUTPUT
DDRB = DDRB | B00111111; // Port B pins OUTPUT x x 8 9 10 11 12 13
DDRC = DDRC | B11111111; // Port C pins OUTPUT 21 20 19 18 17 16 15 14 (A7 - A0)
DDRD = DDRD | B11111100; // Port D pins OUTPUT 7 6 5 4 3 2 1 0
// Set DIO pins HIGH
PORTB = PORTB | B00111111; // Port B pins HIGH x x 13 12 11 10 9 8
PORTC = PORTC | B11111111; // Port C pins HIGH 21 20 19 18 17 16 15 14 (A7 - A0)
PORTD = PORTD | B11111100; // Port D pins HIGH 7 6 5 4 3 2 1 0
walk();
}
void loop() {}
void walk() { // clear pins from Pin 2 to Pin 21
for (int i = 2; i < 8; i++) { // Port D pins 2 to 7
PORTD = PORTD | 1 << i; // shift bit left one register
delay (ms);
PORTD = 0;
delay (ms);
}
for (int i = 0; i < 6; i++) { // Port B pins 8 to 13
PORTB = PORTB | 1 << i;
delay (ms);
PORTB = 0;
delay (ms);
}
for (int i = 0; i < 8; i++) { // Port C pins 14 to 21
PORTC = PORTC | 1 << i;
delay (ms);
PORTC = 0;
delay (ms);
}
}