"PORTB <<= 1;" ist das gleiche wie "PORTB = PORTB << 1;".Gibts noch eine Erklärung dazu wie nun der Port durchgeshiftet wird um zu Prüfen ob ein Pin1 ist oder die Register zu setzen?
Dabei wird erstmal der aktuelle Wert aus dem Register PORTB gelesen, dann dieser Wert um eine Stelle nach links geschoben (links fällt dabei ein Bit raus, rechts wird eine 0 nachgeschoben) und der geänderte Wert wird zurück in das Register geschrieben. Nach 8 Schleifendurchläufen ist die 1 links rausgefallen (PORTB ist dann also 0) und das if sorgt dann dafür, dass ganz rechts wieder eine 1 reingeschrieben wird.
Lesezeichen