www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmcode zum umwandeln von Bitsignalen


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

Der folgende Code soll dazu dienen, Bitsignale in einen Maschinencode 
umzuwandeln. Er ist in der Programmiersprache Bascom geschrieben Ich 
habe ihn aus einem Beispiel entnommen und möchte den Code gerne 
verstehen.
Sub Empfangen(byval Num As Byte)
While Isit < 255
Isit = Waitkey()
Wend
Num=Num+1
For F=1 To Num
Isit = Waitkey()
Ar(f) = Isit
Next
End Sub

Die Variable Ar(f) soll am Ende den Maschinencode ergeben. Ich weiß aber 
nicht, wie die Anweisung "Isit < 255" zustandekommt. Kann jemand damit 
was anfangen?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Isit ist eine temporäre Variable, in der der Rückgabewert von Waitkey 
gespeichert wird. Dadurch kann man den Wert vergleichen, ohne ein 
weiteres Mal die Waitkey-Funktion aufzurufen.

Der Autor hat imho vergessen, Isit vor dem ersten Test zu 
initialisieren. Oder macht Basic das automatisch?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Variable "Isit" wurde weiter oben initialisiert. Der Datentyp lautet 
Byte. Die Funktion Waitkey() scheint in einer Bibliothek von Bascom 
enthalten zu sein. Was macht die Funktion eingentlich, oder könnte sie 
machen?

Basti

Autor: ibilzh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


>Sub Empfangen(byval Num As Byte)
>While Isit < 255
>Isit = Waitkey()
>Wend

Hier wird solange in der Schleife die Serielle Schnittstelle abgefragt, 
bis 255 ( Bin 11111111 ) kommt. Vermutlich zum Synchronisieren. Der 
Befehl Waitkey wartet auf einen Char der seriellen Schnittstelle, wenn's 
sein muss bis in alle Ewigkeit.

>Num=Num+1
>For F=1 To Num
>Isit = Waitkey()
>Ar(f) = Isit
>Next

Die Schleife sammelt Num mal (Übergabewert) Daten von der Seriellen und 
speichert die Daten in einem Array Ar(f).
Num+1 ist vermutlich wegen Array auslesen als Endkennung.



Gruß
Gerhard

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen, vielen Dank für die Nachricht, jetzt ist mir vieles klarer 
geworden.

Freundliche Grüße

Basti

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.