Archiv verlassen und diese Seite im Standarddesign anzeigen : Steuern über die RS232 (seriell) mit einem String Befehl
Karlonimo
02.01.2008, 16:04
Hallo liebe Forum Freunde,
ich bin jetzt leider in der Suche nicht weiter gekommen und will darum hier meine Frage loswerden. Leider bin ich ein Neuling im Bereich des Programmierens eines Mikrocontrollers über Bascom.
Mein Problem. Ich möchte gern eine LED über die serielle Schnittstelle Ein- und Ausschalten. Ich bekomme dies sehr gut mit dem Befehl INKEY hin.
Das heißt wenn ich ein Byte im Terminalprogramm absende, z.B. "a" dann geht die LED an und wenn ich ein "u" sende dann geht sie aus.
Ich will jedoch ein ganzes Wort schicken also z.B. "LEDan" oder "LEDaus" damit sich was tut.
Habt ihr da eine Idee wie man so etwas lösen könnte.
Vielen Dank
Ich denke du stellst dir das so vor, dass man das Wort eingibt und zur bestätigung Enter drückt, wodurch das Wort an den µC gesendet wird, richtig?
Ich würde die Buchstaben hintereinander empfangen (mit Handshaking damit nicht irgendwas bei herauskommt) und sobald "Enter" gesendet wird, soll der µC die ganze Sache beispielsweise mit 2 If-Abfragen auswerten.
MfG Killer
Na, z.N.
dim befehl as string * 20
INPUT "Wat nu ?", befehl
if befehl = "LEDon" THEN ........
Karlonimo
02.01.2008, 23:21
Hallo nochmal,
danke für die schnellen Antworten.
Also das mit dem INPUT Befehl habe ich mir auch so gedacht. Nur leider funktioniert das nicht so wie ich will. Hab hiermal den Quellcode. Evtl. sieht ja jemand ein Fehler oder weiß was da noch fehlt.
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600
Dim Text As String * 20
Config Portb = Output
Do
Input "Was" , Text
If Text = "LEDan" Then
Portb.0 = 1
Sound Portb.1 , 300 , 200
End If
If Text = "u" Then
Portb.0 = 0
Sound Portb.1 , 300 , 350
End If
Wait 1
Loop
End
Hier wird nur der erste Buchstabe vom AVR entgegengenommen! Lass dir mal hinter der Eingabe das Eingegebene ausgeben, also so:
Input "Was" , Text
Print Text
Wenn ich richtig liege dürfte da jetzt nur ein einziger Buchstabe herauskommen.
MfG Killer
Karlonimo
03.01.2008, 16:47
Also das habe ich gestern auch schon so probiert, da das Beispiel in der Bascom Hilfe ja so ähnlich ist.
Es passiert folgendes: Der Text "Was?" wird über das Terminal Programm problemlos ausgegeben. Wenn ich dann meine Eingabe mache und ENTER drücke passiert gar nix.
Ich weiß auch nicht warum. Die Der normale Print Befehl, also einfach
Print "Hallo Welt" oder so etwas funktioniert aber.
Karlonimo
03.01.2008, 16:48
Also das habe ich gestern auch schon so probiert, da das Beispiel in der Bascom Hilfe ja so ähnlich ist.
Es passiert folgendes: Der Text "Was?" wird über das Terminal Programm problemlos ausgegeben. Wenn ich dann meine Eingabe mache und ENTER drücke passiert gar nix.
Ich weiß auch nicht warum. Der normale Print Befehl, also einfach
Print "Hallo Welt"
oder so etwas funktioniert aber.
Nur damit es gesagt wurde:
du mußt auf Groß- Kleinschreibung achten, also "LEDan" und "u"
Karlonimo
03.01.2008, 17:16
@PicNick
Ja klaro. Hab ich drauf geachtet. Aber funktioniert trotzdem nicht.
Versuch mal, zwecks diagnose
Do
Input "Was" , Text
print "-->"; text ' was ist gekommen
If Text = "LEDan" Then
Portb.0 = 1
Sound Portb.1 , 300 , 200
End If
If Text = "u" Then
Portb.0 = 0
Sound Portb.1 , 300 , 350
End If
Wait 1 ' muß nicht sein , du wartest eh dann auf Input
Loop
End
Karlonimo
04.01.2008, 08:45
Hallo an alle,
also hab das Problem jetzt gelöst. Der Quellcode war nicht der Fehler.
Mein Terminalprogramm scheint wohl für so etwas nicht zu funktionieren.
Ich habe dann das von BASCOM und das WinXP Terminalprogramm genommen und damit läuft es super.
Danke für Eure Hilfe. O:)
Andree-HB
04.01.2008, 08:52
..hier wäre sonst auch noch ein Ansatz :
http://www.pixelklecks.de/1f40e2973f0cb1401/84889198e011d190c/index.html
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.