senkrechter Strich bei Register initialisierung

OP #4401021
Lesenswert?
• ▲
▼
Hallo,

suche nach einer Aussagekräftiger Lektüre, wo ich was über senkrechte 
Striche bei UART Initialisierung nachlesen kann. Momentan kann ich da 
keine Regelmäßigkeiten erkennen und finde auch nirgendwo was darüber.

z.B. wird Bit TXEN ohne den senkrechten Strich auf 1 gesetzt:

                    UCSRB1=(1<<TXEN)

und bei UCSZ12 wird er verwendet:

                    UCSRB1|=(1<<UCSZ12)

auch hier wird senkrechter Strich genutzt:

                    UCSRZ1|=(1<<USBS)

hat vielleicht einer sich schon mal damit befasst und weiß, wo ich die 
Erklärung finde? Überall wo ich geschaut habe, sind sie nur fertig 
definiert, ohne zu erklären, warum.

vielen Dank im Voraus!
OP #4401039
Lesenswert?
• ▲
▼
im C-Buch bei bitweise Operationen steht "Der senkrechte Strich | 
bedeutet ein logisches bitweises ODER" aber in diesem Beispiel schaltet 
man die expliziten Bits auf 1. Man könnte es einfach für Regel annehmen, 
jedoch es gibt Beispiele, wo man bei absolut gleicher Operation keinen 
Strich einsetzt...
OP #4401043
Lesenswert?
• ▲
▼
> Oder geht es Dir speziell um die Sache beim UART?

genau, ich kann einfach keinen Zusammenhang mit Registereinstellung 
finden, weil es hier eigentlich nicht um ODER geht, sonder um das 
Einschalten explizites Bits..

und desweiteren ist mir auch nicht klar, warum es nicht überall so ist, 
obwohl es doch überall darum geht die Bits 1 zu schalten
#4401059
Lesenswert?
• ▲
▼
Alex S. schrieb:
> und desweiteren ist mir auch nicht klar, warum es nicht überall so ist,
> obwohl es doch überall darum geht die Bits 1 zu schalten

Das hängt davon ab, was in der Variablen / im Register schon steht.
Bei ersten Schreiben will man vielleicht alle Bits definiert einstellen.
Bei weiteren Schreibvorgängen will man eventuell nur bestimmte Bits 
ändern.

Was also richtig ist hängt von der Umgebung ab und davon, was man 
tatsächlich machen will.

Gruß Dietrich

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.