Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Bascom
Hallo
Bin grad am Programmieren eines 20 Kanal-Ir-Empfängers (RC-5 Code). Der Empfänger funktioniert auch ohne weiteres(Zahlen 0-9, Play,Pause etc..) Nun möchte ich aber Zahlen eingeben von 0-99, hierzu will ich das Toggle-Bit auslesen was auch noch ohne weiteres funktioniert, mein Problem liegt nun aber darin, dass wenn 2 Tasten gedrückt worden sind zb 1 und 9 (welche in Variablen zb. Command 1 u. Command2 gespeichert worden sind) ich diese zusammenzufügen möchte zu z.B. 19, ich bin mir sicher das der Befehl sehr einfach dafür ist, aber irgendwie will ich nicht dahinter steigen. Ich hoffe ihr könnt mir helfen
MfG
wolper
linux_80
22.12.2008, 01:37
Hallo,
die einzelnen Werte sind ja als Zahl vorhanden, also als Byte-Wert, diese kann man einfach zusammenzählen:
Cmdges = Cmd1 * 10 + Cmd2
In Bascom wird man das aber noch aufteilen müssen, da nur eine Rechnung pro Zeile geht.
Wenn Du einen String haben möchtest, geht das mit
S = Str(Command)
danach beide Werte zusammenhängen.
Danke für die Antwort, hab mir schon gedacht das des wirklich einfach gehalten ist.
Hab das jetzt mal fertig geschrieben, vll könnte einer von euch schnell einen Blick drüber werfen ob das so funktionieren würde/könnte?!
(sitz gerade in der Arbeit und kann das leider nicht testen)Vielleicht ist ja ein gröberer Fehler vorhanden, den man auf dem ersten Blick erkennt und ich den vor dem ersten Testen noch ausmerzen kann.
Do
Zahl1 = 0
Getrc5(address , Command) 'lese Adresse und Kommando von TSOP
If Address < 255 Then
Toggold = Command.7 ' Toggle Bit merken
Command = Command And &B01111111 'lösche Toggle-Bit
Command = Command1
Do
Getrc5(address , Command)
Command = Command And &B01111111
Incr Zahl1
Waitms 1
Loop Until Zahl1 = 500
Togg = Command.7
If Togg <> Toggold Then
Cges = Command1 * 10
Cges = Command1 + Command
Cges = Command
Else
Goto Commandabfrage
End If
Commandabfrage:
If Command = 12 Then
Toggle Porta.0
End If
Waitms 40
End If 'warte 40 Millisekunden
Loop
End
Variablen Zuweisung, Output/Input Config etc. ,hab ich mal rausgelassen das es sich schöner lesen lässt
MfG
wolper
linux_80
22.12.2008, 11:11
Moin,
das hier hat so noch keinen praktischen nutzen:
Cges = Command1 * 10
Cges = Command1 + Command
Cges = Command
es muss in jeder Zeile schon das Ergebnis von der vorhergehenden Zeile verwendet werden.
Cges = Command1 * 10
Cges = Cges + Command
Hallo,
Danke für die Hilfe, da hast du natürlich recht, dummer Fehler!
hab es jetzt abgeändert zu
Cges = Command1 * 10 ' erste Taste * 10 u. Ergebniss in Cges schreiben
Cges = Cges + Command ' erste Taste + zweite Taste Ergebniss in Cges schreiben
Command = Cges ' Ergebniss Cges wird in Command geschrieben
Ich werde das Programm heute Abend testen, sobald ich aus der Arbeit heimkomm. Werde dann mein Ergebniss posten.
MfG
wolper
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.