#include <avr/io.h>
#include <stdlib.h>
#include <string.h>
#include <util/delay.h>
#ifndef _BV
#define _BV(bit) (1<<(bit))
#endif
#ifndef sbi
#define sbi(reg,bit) reg |= (_BV(bit))
#endif
#ifndef cbi
#define cbi(reg,bit) reg &= ~(_BV(bit))
#endif
#ifndef tbi
#define tbi(reg,bit) reg ^= (_BV(bit))
#endif
void blinkLEDsSequentially() {
for (uint8_t i = 0; i < 8; i++) {
PORTD |= (1<<i);
_delay_ms(500);
PORTD ^= (1<<i);
}
for (uint8_t i = 6; i > 0 ; i--) {
PORTD |= (1<<i);
_delay_ms(500);
PORTD ^= (1<<i);
}
}
int main() {
DDRD=0xff;
_delay_ms(500);
while(1) {
blinkLEDsSequentially();
}
}