/* lauflicht_sr_02.c ATmega88 @ 8MHz */ int main(void) { DDRD = 0xFF; // Richtungsregister PORTD = Ausgang PORTD = 0x04; // PD2 (RCK) = High, 0x04 = 0000 0100 uint8_t k, data = 0x01; // data = 0000 0001 while(1) { if (data & 0x80) // Wenn 1000 0000, dann 6x nach rechts schieben { for (k=0; k<=6; k++) { _delay_ms(100); // 100ms warten soft_serial(data); // Funktionsaufruf und Übergabe von data rck(); // Funktionsaufruf rck -> Takt für RCK generieren data = data >> 1; // data um 1 Stelle nach rechts schieben } } else if (data & 0x01) // Wenn 0000 0001, dann 6x nach links schieben { for (k=0; k<=6; k++) { _delay_ms(100); // 100ms warten soft_serial(data); // Funktionsaufruf und Übergabe von data rck(); // Funktionsaufruf rck -> Takt für RCK generieren data = data << 1; // data um 1 Stelle nach links schieben } } } }