Hi, kann mir jemand erklären, was eigentlich genau in folgenden Ausdrücken gemacht wird? PORTB |= (1 << PB1); PORTB &| ~(1 << PB2); Also nicht das der Pin gesetzt oder gelöscht wird, sondern was wirklich im Controller passiert. Linksschieben usw.
Also C ist im Gegensatz zu anderen Programmiersprachen ziemlich intelligent. Es versucht immer, alle konstanten Ausdrücke auszurechnen, ehe es realen Code für das Target generiert. Das Schieben konstanter Ausdrücke wird vor dem Compilieren ausgeführt und stattdessen der errechnete Wert verodert bzw. verandet.
1 | PORTB &= ~(1 << PB2); |
wird also compiliert zu:
1 | PORTB &= 0xFB; |
Peter
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.