if( PIND & 1<< PD6 ){ ... 1.) Zustände von PortD werden eingelesen (z. B. 0b0100 0000) 2.) UND-Verknüpfung von 1.) mit 0b0000 0001 = 0b0000 0000 3.) Das Ergebnis aus 2.) wird nach logisch links geschoben um den Wert von PD6 Ist das Ergebnis nicht immer 0, sofern nicht PIND0 = 1 ist??? Helft mir mal bitte. Markus
nein, der schiebe-operator "<<" hat eine höhere priorität als das bitweise und "&" !!! somit: 1.) Zustände von PortD werden eingelesen (z. B. 0b0100 0000) 2.) die "1" wird um "PD6" nach links geschoben 0b0000 0001 = 0b0100 0000 3.) Die resultate werden bitweise verUNDet.. if ist "true" wenn Bit nummer "PD6" im "PIND" high-level aufweist, ansonsten "false"
if( PIND & (1<< PD6) ){ ^^ macht somit das gleiche, wie das obere von markus!
Prüfen ob PD6 gesetzt ist, klar. Hier ist der Ausdruck zum prüfen ja in extra klammern. Bei meinem Beispiel waren die Klammern halt expliziet nicht gesetzt, oder hat hier das 1<<PD6 Vorrang vor dem PIND & Ausdruck? Wahrscheinlich denke ich nur wieder viel zu kompliziert...
^^habe ich doch schon beantwortet :( nein, der schiebe-operator "<<" hat eine höhere priorität als das bitweise und "&" !!!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.