-
        

Ergebnis 1 bis 2 von 2

Thema: Bin mit Bascom am verzweifeln

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2005
    Ort
    Ichtershausen
    Alter
    48
    Beiträge
    148

    Bin mit Bascom am verzweifeln

    Anzeige

    Also inzwischen treibt mich Bascom in den Wahnsinn, da die Logik, die man in die Programmierung steckt anscheinend nicht zu 100% in Code umgewandelt wird.
    Zum Sachverhalt:
    Ich habe mein Controllerboard mit ATMega8 und extermen Quarz (6MHz) Soweit am Laufen, daß ich davon ausgehen kann, daß die Hardware sauber läuft. Nun bin ich an der Softwareentwicklung und habe da schon diverse unzulänglichkeiten bzw. die Unmöglichkeit Serielle Eingaben zu simulieren und Bascom kennen gelernt. Also musste ich mir etwas einfallen lassen, wie ich direkt sehe, was der ATMEga auf dem Board macht. Meine Lösung: Ich schicke einfach die Debug infos per RS232 zurück und kann sie auslesen. Da habe ich aber anscheinend nicht die Rechnung mit Bascom gemacht. mein Code sieht so aus:


    Code:
    Dim command as String * 9
    Dim Subcommandchar as String *1
    ....
    
        'Command enthält den String "FV000000²"
     
        Subcommandchar = Mid(command , 2 , 1)
        Print command
        Print Subcommandchar
    
         Select Case Subcommandchar                             'in entsprechende Unterroutinen verzweigen
           Case "V" : Responsecommand "FV0000033"                         'Firmware zurück geben
           Case "G" : Gotocommand
           Case "I" : Moveincommand
           Case "O" : Moveoutcommand
           Case "L" : Travelcommand
           Case "N" : Backlashcommand
           Case "C" : Configcommand
           Case "T" : Readtemperature
           Case Else : Print Command
         End Select
    Die beiden Zeilen Print command und Print Subcommandchar
    dienen der Ausgabe der benötigten infos. Der erste Befehl wird noch ausgeführt und liefert auch schön das gewünschte ergebnis. Der 2. Printbefehl, der eigenlich das "V" zurück geben sollte wird nicht mehr ausgeführt. Auch wird die Case anweisung nicht durchlaufen.
    Jetzt erklär mir mal einer, wo da der Fehler steckt. Ich bin mit meinem Latein am Ende.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Aus dem Code-Schnipsel kann ich keinen Fehler erkennen.
    Für unerklärliches Verhalten ist oft ein zu kleiner Stack ($HWStack, $SWStack und $Framsize) verantwortlich.
    Siehe dazu in BASCOM-AVR Hilfe unter DBG und $DBG. Weiters gibt es auch im RN-Roboter Artikelbereich http://www.roboternetz.de/wissen/ind.../Bascom_Inside darüber Informationen.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

Berechtigungen

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