Wie nur ein Nibble ausgeben?

Gast #149245
Lesenswert?

Hallo,

ich habe einen 8Bit-Port als Ausgabeport definiert.
Nun möchte ich mit 4 Pins je ein Relais schalten, und mit den anderen 4
Bits 10 LEDs Muxen.
In der Mux-Routine möchte ich nun nur das relevante Niobble ausgeben,
die anderen Bits sollen nicht verändert werden.

Gibts da eine elegantere Lösung als:

1. Port in temp lesen
2. AND 1111 0000          ; Bit 0-3 für LED
3. LED-Register OR temp   ;Kombination wird übernommen
                          ;im LED-Register ist höheres Nibble=0
4. temp ausgeben

?
Gast #149246
Lesenswert?

Hi,

wenn der µC bitweises Ändern von Portpins unterstütz kannst du die Pins
separat setzen. Ob das jetzt unbedingt eleganter ist, bleibt fraglich.
Ich würd es so, wie von dir beschrieben machen. Wenn du noch ein
Register freihast, kannst du das andere Halbbyte dort vorhalten und
musst es nicht immer vom Port einlesen...

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