Hallo. Bedeutet eigentlich bei der C-Programmierung unter Codevision PORTA &= 0xfO das selbige wie PORTA |= 0x0f ?
nein tut es nicht &=0xf0 ist eine AND verknüpfung mit 0b11110000 wärend |=0x0f eine OR verknüpfung mit 0b00001111 ist.
Bin kein spezialist für deinen uC aber in C ist ein = eine wertzuweisung PORTA=0xf0 setzt die Bitfolge 0b11110000 PORTA&=0xf0 steht hingegen für PORTA=PORTA&0xf0 & ist eine bitweise AND verknüpfung, was die jedoch mit deinem PORTA macht müsste mal jemand bewerten der den uC programmiert
Es holt den aktuellen Wert von PORTA (*), macht damit die UND-Verknüpfung mit 0xF0 und schreibt das Ergebnis wieder zurück zum PORTA. Also genau das was da steht: PORTA &= 0xF0; (*) Ist der PORTA als Ausgang gesetzt, dann handelt es sich dabei um den zuletzt auf PORTA geschriebenen Wert Ist der PORTA hingegen als Eingang definiert worden, dann ist der Wert der Zustand der Pull-Up Widerstände.
@Helge Deine Fragen, kannst du dir ganz leicht selbst beantworten, indem du das ganze einfach ausprobierst. Vorausgesetzt natürlich, du weist was die Operationen an sich machen :-) Wenn du dieses Wissen nicht hast, dann empfehle ich dir mal ein Buch über C zu lesen. Das ist dann eigentlich fehlendes Grundlagenwissen. Konkret: Angenommen am PORTA liegt der Zustand 0b10101010 an. PORTA & 0xF0 <==> 0b10101010 & 0b11110000 ----------- 0b10100000 PORTA | 0x0F <==> 0b10101010 | 0b00001111 ----------- 0b10101111 PORTA = 0x0F 0b10101010 = 0b00001111 (Zuweisung) ----------- 0b00001111 Für & und | einfach bitweise die UND bzw. ODER Verknüpfung machen.
zum µC: PORTA, PINA und DDRA sind die Register des PORT A. Wenn PORTA beschrieben wurde bleibt der Inhalt bis zum nächsten Beschreiben wie er ist (außer Sonderfunktionen wie z.B UART sind aktiv). PINA kann nur gelesen werden und gibt den Zustand der PORTA - Pins wieder. Für DDRA (Datenrichtungsregister A) gilt dasselbe wie bei PORTA.
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.