mikrocontroller.net

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


Autor: Marco Schwerdtfeger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco Schwerdtfeger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andrew DLL (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.