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
Gast
#530342
Und was macht
if( PIND & (1<< PD6) ){ ...
Gast
#530344
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"
Gast
#530346
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...
Gast
#530351
^^habe ich doch schon beantwortet :( nein, der schiebe-operator "<<" hat eine höhere priorität als das bitweise und "&" !!!
Ja, habs schon gesehen, danke. War zu langsam! :)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.