Mikrontroller mit C - adressierung und maskierung

OP #1399411
Lesenswert?

Hallo

Habe grade mit der Microcontrolerprogrammierung mit "C" begonnen.
Folgende Dinge verstehe ich nicht so ganz und hoffe, dass mir jemand
helfen kann:

Einige Ports sind Bitadressierbar einige Byteadressierbar...worin
besteht der Grund, dass es bei den einen so und bei den anderen so ist?

Maskierung der byteadressierbaren Ports:

Ich verstehe, dass ich mit z.B. P6=0xef; den Port 6 mit dem Bitmuster
11101111 versehe, aber was genau bedeutet das 0x dabei?
weiterhin:
Bei einer Abfrage eines Ports mit:
if((P8&0x01)==0)
oder dem setzten eines Ports/SFRs mit:
TMOD=((TMOD&0xf0)|0x01);
was bedeutet das & bzw. das |  ?
mir ist klar dass es etwas mit einer "und" bzw. "oder"-Verknüpfung zu
tun hat, aber so richtig verstehe ich es nicht.....

Vielen Dank schonmal für die Hilfe!
#1399420
Lesenswert?

Bernd Brot schrieb:

> Einige Ports sind Bitadressierbar einige Byteadressierbar...worin
> besteht der Grund, dass es bei den einen so und bei den anderen so ist?

Das wird verständlich, wenn man sich dieser Frage auf der Ebene des 
Maschinencodes nähert. Also der Codierung der Befehle. Man hat nur 
begrenzt Platz darin.
Persönliche Seite #1399423
Lesenswert?

>Ich verstehe, dass ich mit z.B. P6=0xef; den Port 6 mit dem Bitmuster
>11101111 versehe, aber was genau bedeutet das 0x dabei?
Steht für Hex


>Bei einer Abfrage eines Ports mit:
>if((P8&0x01)==0)
>oder dem setzten eines Ports/SFRs mit:
>TMOD=((TMOD&0xf0)|0x01);
& = und Verknüpfing, siehe Bitoperationen
| = oder Verknüpfung

>was bedeutet das & bzw. das |  ?
>mir ist klar dass es etwas mit einer "und" bzw. "oder"-Verknüpfung zu
>tun hat, aber so richtig verstehe ich es nicht.....
http://www.mikrocontroller.net/articles/Bitmanipulation Bitmanipulation

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren