typedef unsigned char uint8_t; void wait(void) { volatile int i; for (i = 0; i < 30000; ++i) /*empty*/; } int main(void) { void wait(void); uint8_t c1, c2, i; volatile uint8_t* ddrb = (uint8_t*)0x37; volatile uint8_t* portb = (uint8_t*)0x38; *ddrb = 0xFF; while (1) { c1 = 0x80; c2 = 0x01; for (i = 0; i < 4; i++) { wait(); *portb = ~(c1 | c2); c1 >>= 1; c2 <<= 1; } } return 0; }