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.
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
Hei,
> Bei Eingängen kann das unangenehme Nebenwirkungen haben.
dann muß ich es anderst gestalten.
schönen Tag
L.R.
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
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.
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.