Port lesen/schreiben

OP #3330841
Lesenswert?

Hei,

Microchip PIC32MX795F512L

bei diesem µC haben die Port's 16 bit. Die Hardware teilt sich den Port
Bit 0 - 7 als Byte und Bit 8 - 15 als einzelne Bits, sowohl als Ein- und 
Ausgang.

Welchen Weg muß ich einschlagen, wenn ich Bit 0 - 7 neue Daten übergebe 
ohne das ich die Bit 8 - 15 verändere ?

mein Beispiel:
Port in Buffer lesen
Buffer maskieren
Buffer Bits 0 - 7 aktualisieren
Buffer an Port ausgeben

oder gibt es eine einfacher Variante ?


vielen Dank im voraus

schönen Tag
L.R.
Gast #3331201
Lesenswert?

L. R. schrieb:
> Port in Buffer lesen
> Buffer maskieren
> Buffer Bits 0 - 7 aktualisieren
> Buffer an Port ausgeben

Das ist richtig, wenn alle 16 bit Ausgänge sind - in die gerade nicht 
gewünschten schreibst du ja den gleichen Wert wieder zurück. Bei 
Eingängen kann das unangenehme Nebenwirkungen haben.

Gruss Reinhard
Gast #3331266
Lesenswert?

L. R. schrieb:
> dann muß ich es anderst gestalten.

Nicht wirklich, du musst dir nur klar werden, was du an einen 
Eingangspin schreiben darfst - z.B. müssen einfache OC-Pins ohne eigenes 
Data Direction Bit nur mit Hi beschrieben werden, damit die Beschaltung 
den Pin nach Low ziehen kann. Das hängt eben von der jeweiligen 
Ausfürhrung des I/Os ab. An manche Pins kann man auch schreibenwas man 
will, wenn sie als Eingang konfiguriert sind. RTFM.

Gruss Reinhard
OP #3332044
Lesenswert?

Hei,

Zur Sicherheit werde ich dann den Buffer als struct anlegen und mittels 
if / else die 8 Bits abfragen und im Ziel entsprechend setzen/löschen

Damit erübrigt sich dann das einlesen, maskieren ...
und kann gezielt auf die unteren bzw. oberen 8Bit des 16Bit Port 
zugreifen

Vielen Dank für die Infos.

schönen Tag
L.R.

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