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:
Die beiden Zeilen Print command und Print SubcommandcharCode: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
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.







Zitieren
Lesezeichen