mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom Ausgänge binär schalten?


Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi all,

ich programiere jetzt schon eine ganze weile mit Bascom.

Ich habe z.b. eine ausgang so aktiviert:

Portd.6 = 1

Ich weiß aber das man da auch binär machen kann ... ich guggel jetzt 
schon ne weile aber so eine wirklich anleitung habe ich noch nicht 
gefunden...

könnte mich da mal jemand aufklären wie das geht (habe leider keinen µC 
da sonnst würds ich einfach mal ausprobieren)
so:

Portd = &B00100000 ??? (port D 6 ist jetzt auf High)
PortD = &B01001001     (jetzt sind 1, 4 und 7 auf high, oder????)

hatte das vor längeren mal versucht und da hatten die led willd 
ducheinander geblinkt!


gruß
Matthias

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich kenne Bascom nicht, denke aber, das auch Bascom bei 0 anfängt mit 
dem Zählen der Bit's
Portd = &B00100000      port D .5 ist jetzt auf high
PortD = &B01001001      Port D .0, .3 und .6 auf high
Übrigends, auch eine Zuweisung PortD.6=1 ist binär, weil ein Pin nur 
eine 1 oder eine 0 sehen kann, also 2 Zustände haben kann. Es sei denn, 
es ist eine Analogbeschaltung, aber die kann nur eine x-beliebige 
Spannung zwischen 0V und ~VCC verarbeiten. Dazu bedarf es anderen 
Programmaufrufen.
Gruß oldmax

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Portd = &B00100000     port D .5 ist jetzt auf high

Das wird zwar das gewünschte Verhalten an PD5 haben (falls Syntax 
stimmt), aber gleichzeitig alle anderen auf 0 setzen. Gibt Anwendungen, 
wo das Sinn macht (z.B. eine LED-Matrix, die am gesamten Port 
angeschlossen ist), meist ist es jedoch sinnvoller mit
-or  (zum setzen bestimmter Pins)
-and (zum löschen bestimmter Pins)
-xor (zum invertieren bestimmter Pins)
zu arbeiten.

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich glaub, das muß etwas erklärt werden. Richtig ist, die Zuweisung 
PortD.5=1 setzt nur Pin 5 vom PortD.
Wenn mit Bytes gearbeitet wird und man nur 1 Bit setzen will, die 
anderen aber sollen bleiben, wie sie sind, mußt du dir eine Variable 
einfallen lassen, die den Zustand der Portpins abspeichert und über 
diese setzt du dann den gesamten Port.
In Assembler sieht's so aus:
LDS R8, Port_D_Var  ; Register 8 mit Portvariable laden
ORI R8, 0b00100000  ; Register 8 mit Bytemuster 00100000 verodern
                    ; Bit 5 wird zu 1, alle anderen bleiben wie sie sind
STS Port_D_Var, R8  ; Portvariable wieder zurückschreiben und anschließend
                    den PortD mit Port_D_Var beschreiben.
Zum Ausschalten des Bits brauchst du eine Und-Funktion
LDS  R8, Port_D_Var  ; Register 8 mit Portvariable laden
ANDI R8, 0b11011111  ; Register 8 mit Bytemuster 11011111 verunden
                    ; Bit 5 wird zu 0, alle anderen bleiben wie sie sind
STS Port_D_Var, R8  ; Portvariable wieder zurückschreiben und anschließend
                    den PortD mit Port_D_Var beschreiben.
In Basic sollte es so aussehen
Port_D_Var=Port_D_Var Or &b00100000 
für's setzen und
Port_D_Var=Port_D_Var AND &b11011111 
für's löschen. Sollte der Syntax nicht stimmen, seht es mir nach, Basic 
ist sehr lange her....
Gruß oldmax

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.