www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schrittweises Bit-Auslesen aus einem Byte-Wert


Autor: Peter Roß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo und einen schönen Tag,

ich habe zur Ausgabe mehrere Byte-Werte, wovon jedoch nur jeweils 6 Bits 
(bit-0 bis bit-5) zur Ansteuerung von LEDs benötigt werden. Gibt es eine 
kompakte BASCOM-Routine, die mir das bitweise Byte-auslesen vereinfacht. 
Ich möchte ungern den ganzen Port belegen, da ich um jeden Port-Pin 
angewiesen bin.

Vielleicht gibt es einen Fan unter euch, der mir helfen kann.
Danke und viele Grüße
Peter

Autor: bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A = &B00111111

B = &B01110000

C = B And A

bit 6 und 7 werden nicht benutzt

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bastler wrote:
> A = &B00111111

A ist dann also die Adresse einer Variablen mit dem Namen B00111111.


Peter

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der Variablen A (die hier als Byte definiert sein muß) wird der
Binärwert "00111111" zugewiesen.

MfG Paul

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> A = &B00111111

>A ist dann also die Adresse einer Variablen mit dem Namen B00111111.

In Bascom (und anderen Basic-Dialekten) wird eine nichtdezimale 
Zahlendarstellung mit "&" eingeleitet...

Autor: Peter Roß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Eure Teilnahme,

auf die And-Anweisung hätte ich auch selber kommen müssen; autsch!
Dennoch wird der ganze Port belegt, wenn ich den Wert zuweise.

Bei der Port-Adressierung kann ich z.B sagen:
Portb.2 = 0
gibt es sowas auch für Variable; z.B.
Portb.2 = X.1
portd.b = X.3  usw..

Eine deratrige Routine wäre für meine Arbeit hilfreich.

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Port einlesen, Bits, die benötigt werden setzen und anschließend wieder 
den Port ausgeben.

Anfangszustand: 0000 0011   (Einlesen)

            or  0011 0000

Endzustand:     0011 0011   (Ausgeben)

Gruß,
Tubie

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>gibt es sowas auch für Variable; z.B.
>Portb.2 = X.1
>portd.b = X.3  usw..

Ja, genau so, wie es da steht, funktioniert das in Bascom, wenn X ein 
Byte ist.

Autor: Peter Roß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
suuuuper

es klappt, damit kann ich meine Port-Ausgänge optimal nutzen.

Danke

Roß

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.