www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BASCOM --> Bits aufteilen und am Port ausgeben


Autor: Sven Scholz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich brauche da mal einen kleinen Denkanstoß.
Ich will folgende Bitkombination an den Portpins ausgeben.

10101 (21)

bitvariable = 21

Die oberen 2 Bit (10) sollen nach PinD.5 und PinD.6
die mittleren 2 Bit (10) sollen nach PinC.3 und PinC.2
und das LSB (1) soll nach PinB.7 wandern.

Wie macht man so etwas unter BASCOM? (am einfachsten bzw. effektivsten)
Hatte schon an shift operationen gedacht?

Bitte helft mir weiter. Vielen DANK!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
var2 = 0
if var1 and 0x01 then var2 = var2 + 0x80
if var1 and 0x02 then var2 = var2 + 0x04
if var1 and 0x04 then var2 = var2 + 0x08
if var1 and 0x10 then var2 = var2 + 0x40
if var1 and 0x20 then var2 = var2 + 0x20


Peter

Autor: Netbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BASCOM bietet die Möglichkeit, ein Bit aus einer Variablen 
herauszulesen. Ich glaube, es geht so (habe die Unterlagen nicht parat):

PinD.5 = bitvariable.5
PinD.6 = bitvariable.4
...

Schau mal bei den Befehlen BITS, SET, RESET, TOGGLE, da ist es irgendwo 
dabei.

Autor: frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm die case anweisung

Autor: PeterK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast genauso wie Netbird es sagt. Nur allerdings mit Port und nicht Pin 
(Pin=Input, Port = Output)
Das ist am einfachsten:
PortD.5 = bitvariable.4
PortD.6 = bitvariable.3
PortC.3 = bitvariable.2
PortC.2 = bitvariable.1
PortB.7 = bitvariable.0

Gruß
PeterK

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.