Forum: Mikrocontroller und Digitale Elektronik Abfrage von Einzelbitz eines Bytes?


von Marco Schwerdtfeger (Gast)


Lesenswert?

Hallo

Ich finde irgendwie nicht den richtigen Zugriff auf einzelne Bits eines
Bytes. Ich möchte gern die Zustände eines Bytes auf verschiedene Ports
des Atmels ausgeben, z.B. Bit 0..2 --> PORTD 2..4 und Bit 3..7 -->
PORTB 0..4 usw., bzw. Bit0 --> PinX oder so in der Art. Helft mir da
bitte mal auf die Sprünge :-).

Danke Marco

von Marco Schwerdtfeger (Gast)


Lesenswert?

Jetzt hab ich's. Ich mache es wie folgt: Ich vergleiche das Byte Wert
mit 1,2,4,8 usw. und erhalte 1,2,4,8 wenn ich folgendes abfrage:
if ((byte & 1)==1)sbi(PORTX, 0); else cbi (PORTX, 0);

Was haltet ihr davon. Gibt es eine bessere Möglichkeit?

von Thomas Burkhardt (Gast)


Lesenswert?

Hallo,

die Lösung ist schon richtig. Das gewünschte Bitmuster mittels UND
ausmaskieren und entsprechend abfragen. Da du viele einzelne Bits auf
die Ports verstreust wird das direkte setzen der Pins auch das
einfachste sein.

Hat man dagegen beispielsweise ein halbes Byte, so kann es schon
sinnvoller sein, den Wert mit dem anderen Halbbyte des Ports zu
verknüpfen und dann eine byteweise Ausgabe zu machen.


Viel Grüße

von Andrew DLL (Gast)


Lesenswert?

Hello Marco,

You may write to me privately at: a n d r e w d l l@lycos.com

See my web site for introduction:
http://andrewdll.angelfire.com
I do have experience with programming the microprocessor for motion 
control. I may hep you.

Andrew

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.