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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.