Forum: Mikrocontroller und Digitale Elektronik Programmcode zum umwandeln von Bitsignalen


von Sebastian (Gast)


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.
1
Sub Empfangen(byval Num As Byte)
2
While Isit < 255
3
Isit = Waitkey()
4
Wend
5
Num=Num+1
6
For F=1 To Num
7
Isit = Waitkey()
8
Ar(f) = Isit
9
Next
10
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?

von Tom (Gast)


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?

von Sebastian (Gast)


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

von ibilzh (Gast)


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

von Sebastian (Gast)


Lesenswert?

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

Freundliche Grüße

Basti

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.