www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom: Hexwert am Pin ausgeben


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich wollte ein Hexwert als 8 Bit an einem Port Pin Serial ausgeben. 
Leider geht es nich mit dem Shiftoutbefehl, da ich den High Pegel ca 1 
ms und den Low Pegel 546 µs halten muss.
Ich habe leider keine richtige Idee wie ich das anstellen soll. Ich 
muesste also den Hexwert in Bin umwandeln und dann Bitweise mit den 
Zeitwerten ausgeben. Es scheitert bei mir aber an der Umwandlung von HEX 
zu Bin, weil sich der Hexwert aendert . Ich will kein komplettes 
Programm , sondern eher eine Hilfe (Ansatz) sonst versteh ich es nicht.


Beispiel:
      
 | |  | |
 | |  | |
-   --   --  usw.

Autor: John Doe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Durchs Carrybit shiften und je nach Carry die entsprechende Verzögerung 
aufrufen.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

leider ist mein wissen noch zu klein um dir zufolgen :(

Autor: John Doe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim 8051er (Du schreibst nicht, welchen MC Du benutzt) nimmst Du zum 
Beispiel rlc oder rrc zum Rotieren des Hexwertes durch das Carry-Bit und 
mit jc oder jnc fragst Du das nach jeder Rotation ab und gibst dann das 
entsprechende Signal aus.
Du kannst auch ganz trivial mit jb und jnb jedes einzelne Bit abfragen 
und dann das entsprechende Signal ausgeben, wenngleich das wenig elegant 
ist...

Autor: Dieter Brüggemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dirk

Man muß nur testen testen, ob das Bit der Variable 1 oder 0 ist. Dann 
kann man entsprechend darauf reagieren.

Hier ein kleines Beispiel

Dim Daten As Byte
dim a as byte
daten = 200

For A = 1 to 8  'Schleife zum ausgeben von 8 Bits
If Daten.0 =then  'Bit 0 der Variable testen
Set  portd .1
else
Reset Portd . 1
End If
Rotate daten,right,1  'Variable eins nach rechts schieben, nächste BIT 
der Variable wird eingestellt.
Next A

MFG
Dieter

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich danke dir Dieter. Das andere scheint assembler zu sein trotzdem 
danke.


Mfg

Dirk

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

nochmals danke ich wusste nicht das ich mit .0 den einzelnen Bit abfrage 
.

Mfg

Dirk

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.