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.