PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zu dusslig fürn 10-Zeiler in Bascom



pfifferhannes
17.08.2005, 07:20
Ich möchte gerne mit einem 89c2051 und BASCOM einen Bitstream an P3.4 auswerten.
Wahrscheinlich bin ich zu dusslig fürn simplen Basic 10-Zeiler.

Warum zählt der Alias für den Input "RX" in diesem Beispiel wie Variable "Sign"?
Kann mir das mal bitte jemand erklären?


Rx Alias P3.4
Dim Sign As Byte , I As Byte

New_sign:
Waitms 22 'Skip Starting bit
Waitms 7 'Offset to somewhere middle of Signal
Sign = 0

For I = 1 To 5 'Read Signal every 22ms, 5bit long
Shift Sign , Left , 1 'Make room for bit-value
If Rx = 1 Then 'Signal state
Sign = Sign + 1 'Set bit-value
End If
Waitms 22
Next I

If Sign = 31 Then 'all bits HIGH
Goto New_sign 'nothing happened - do it again
Else
Print Sign 'Print value of bitstream
Goto New_sign 'do it again
End If

End

PicNick
17.08.2005, 09:00
Mir scheint, er versteht den alias nicht. Probier erstmal

If P3.4 = 1 then ........

ob das geht oder nicht.
Elegante "alias" kannst du nacher immer noch schreiben

pfifferhannes
17.08.2005, 09:14
Danke für den schnellen Tip.
Geht, aber im Simulator shiftet er jetzt P3.4.
Alias ging vorher auch, weil das Signal richtig eingelesen wird.

PicNick
17.08.2005, 13:23
Jetzt seh ich erst: du mußt ja schreiben
Sign = Sign OR 1 'Set bit-value

pfifferhannes
17.08.2005, 15:22
War leider auch nix.
Aber beim Ausprobieren deines Tips eben:
Dimensioniere ich die geshiftete Variable "sign" als Integer, dann gehts plötzlich. Nur noch die Variable reagiert auf shift.

Das verstehe ich zwar nicht und habs auch nur in einem Anflug von geistiger Umnachtung ausprobiert.
Kann ich die paar Bits opfern für die Variable? Muss ich mir noch überlegen...

Danke trotzdem vielmals für die Mühe.
Grüße
Hans