-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Steuern über die RS232 (seriell) mit einem String Befehl

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2007
    Beiträge
    7

    Steuern über die RS232 (seriell) mit einem String Befehl

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.01.2007
    Beiträge
    209
    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

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Na, z.N.

    dim befehl as string * 20

    INPUT "Wat nu ?", befehl

    if befehl = "LEDon" THEN ........
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2007
    Beiträge
    7
    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

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.01.2007
    Beiträge
    209
    Hier wird nur der erste Buchstabe vom AVR entgegengenommen! Lass dir mal hinter der Eingabe das Eingegebene ausgeben, also so:
    Code:
    Input "Was" , Text
    Print Text
    Wenn ich richtig liege dürfte da jetzt nur ein einziger Buchstabe herauskommen.

    MfG Killer

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2007
    Beiträge
    7
    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.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2007
    Beiträge
    7
    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.

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Nur damit es gesagt wurde:
    du mußt auf Groß- Kleinschreibung achten, also "LEDan" und "u"
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    11.11.2007
    Beiträge
    7
    @PicNick

    Ja klaro. Hab ich drauf geachtet. Aber funktioniert trotzdem nicht.

  10. #10
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Versuch mal, zwecks diagnose
    Code:
    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
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •