//RGB Paper Blinky typedef struct { char portB; char directionB; }S_segment_port; S_segment_port SegmentDrive[5] ={ // PORTB DDRB 0, 0, //green (1<<0), (1<<1 | 1<<0), //blue (1<<1), (1<<1 | 1<<0), //white (1<<1), (1<<2 | 1<<1), //red (1<<2), (1<<2 | 1<<1), //green }; void flash(unsigned char led, unsigned int time){ DDRB = SegmentDrive[led].directionB; PORTB = SegmentDrive[led].portB; delay(time); DDRB = SegmentDrive[0].directionB; PORTB = SegmentDrive[0].portB; } #define blue 1 #define white 2 #define red 3 #define green 4 void setup() {} #define ms_delay 1 void loop() { flash(red,ms_delay); flash(green,ms_delay); flash(blue,ms_delay); flash(white,ms_delay); }