#include <avr/io.h>
#include <util/delay.h>
void display_digit(uint8_t digit) {
uint8_t segment_codes[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
PORTD = segment_codes[digit];
}
int main(void) {
DDRD = 0xFF;
while (1) {
for (uint8_t i = 0; i < 10; i++) {
display_digit(i);
_delay_ms(500);
}
}
}