DDRD => Richtungsregister für Port D => In einer Headerdatei definiert
PD5 => Ausgangspin 5 auf Port D => In einer Headerdatei definiert
Das "<<" Zeichen bedeutet links schieben
das "|=" ist eine Oder Verknüpfung und danach wieder zurückschreiben
das "==" Zeichen ist ein Vergleichsoperator, nicht zu verwechseln mit "="
PD5 ist ist als "5" definiert
Die Zeile "DDRD |= (1<<PD5)" kann man auch so schreiben "DDRD = DDRD | (1<<PD5)"
Du darfst aber nicht "DDRD = (1<<PD5)" schreiben.
Bei "DDRD |= (1<<PD5)" wird DDRD eingelesen und nur PD5 geändert, wenn z.B. PD1 gesetzt ist, bleibt es gesetzt, da du den Oder Operator genutzt hast
Bei "DDRD = (1<<PD5)" wird nur PD5 gesetzt, egal was vorher gesetzt wurde.
"PD5 == 1" wird nur bei einer Prüfung verwendet, z.B. wenn du eine If-Schleife verwendest, also "if (PD5 == 1){ .... }"
"PD5 = 1" bewirkt aber etwas anderes, in der Headerdatei wird PD5 als 5 definiert, wenn du in deinem Programm "PD5 = 1" schreibst wird 5 mit 1 ersetzt.
Hoffe es war verständlich.
MfG Hannes
Lesezeichen