Forum: Mikrocontroller und Digitale Elektronik Register mit Bit bitweise vergleichen?


von Lukas P. (lzaman)


Lesenswert?

Sorry falls ich nerve aber hab da noch eine Verständnis Frage:

Was heisst "(RegisterA & (<<Bit7)?

Ist die Aussage dann wahr wenn Bit7= high(logisch 1) und irgendein 
anderes Bit vom RegisterA = high (logisch 1) ist.

Wie funktioniert das genau, wenn man Register mit einzelnen Bits 
bitweise vergleicht?

von Uhu U. (uhu)


Lesenswert?

Lukas Piet wrote:
> Was heisst "(RegisterA & (<<Bit7)?

Das ist leider syntaktische Unsinn. Ich vermute, es sollte heißen:

   RegisterA & (1 << Bit7)

wobei Bit7 als 7 definiert ist.

Es bedeutet: die 1 wird 7 Bit nach links verschoben und bitweise mit 
RegisterA und-verknüpft.

M.a.W.: Das Ergebnist ist ganau dann != 0, wenn in RegisterA das Bit 7 
eine 1 ist.

von Lukas P. (lzaman)


Lesenswert?

Wieso Unsinn?

Das Tutorial schreibt doch mit diesem Syntax.

Zitat aus dem Tutorial:

while ( ADCSRA & (1<<ADSC) ) {
                             ;      // auf Abschluss der Konvertierung 
warten
                             }

von Lukas P. (lzaman)


Lesenswert?

Nächste Überlegung:

Das heisst wohl wenn im Register ADCSRA das Bit ADSC=1 ist, dann ist 
Bedingung erfüllt?

von nixversteh (Gast)


Lesenswert?

Richtig!

von Uhu U. (uhu)


Lesenswert?

Lukas Piet wrote:
> Wieso Unsinn?
>
> Das Tutorial schreibt doch mit diesem Syntax.
>
> Zitat aus dem Tutorial:
>
> while ( ADCSRA & (1<<ADSC) ) {
>                              ;      // auf Abschluss der Konvertierung
> warten
>                              }

Dann lies mal nach, was du in deinem Orginalposting zusammengeradebrecht 
hast...

von Lukas P. (lzaman)


Lesenswert?

ja sorry hatte die 1 vergessen, kann den Beitrag leider nicht mehr 
bearbeiten um es zu korrigieren.

von Simon K. (simon) Benutzerseite


Lesenswert?

Lukas Piet wrote:
> ja sorry hatte die 1 vergessen, kann den Beitrag leider nicht mehr
> bearbeiten um es zu korrigieren.

Einfach vorm Absenden nochmal checken beim nächsten mal ;)

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
Noch kein Account? Hier anmelden.