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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dirk (Gast)


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.

von John Doe (Gast)


Lesenswert?

Durchs Carrybit shiften und je nach Carry die entsprechende Verzögerung 
aufrufen.

von Dirk (Gast)


Lesenswert?

Hi,

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

von John Doe (Gast)


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...

von Dieter Brüggemann (Gast)


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

von Dirk (Gast)


Lesenswert?

Hi,

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


Mfg

Dirk

von Dirk (Gast)


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]
  • [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.