Zitat Zitat von TobiasBlome


Enable Interrupts
Start Adc 'Analogmessung starten


Usb_auslesen:

Stop Timer1

Do
Input S
Loop Until S = "D:\>" 'USB Controller abfragen, bis D:\> gesendet wird

Waitms 1000

Print "rd todo.txt" + Chr(13); 'todo.txt Datei LESEN

Input Delayms 'Wartezeit zwischen den Messungen aus Datei übernehmen
Get #1 , L
Input Channels 'Anzahl der Messkanäle aus Datei übernehmen
Get #1 , L
Input S

Auslesen_ok = 1
Start Timer1

'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
'Hauptprogramm Do...Loop
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------

Do
'_________________________________________________ ______________________________
'Reset
If Pind.7 = 0 Then 'RESET
Logging = 0
Messung = 0 'Zähler für Messungen zurücksetzen
Portb.0 = 0 'schreib LED aus
Gosub Usb_auslesen
End If
Hallo Tobias,
da ist aber mehr falsch als nur ein Schönheitsfehler.
Usb_auslesen ist eine Subroutine, in die das Programm gleich zu Anfang rein läuft. Ohne auf ein Return zu kommen - was hier auch fatal wäre - geht es in die main loop. Dort kann dann wieder usb_auslesen aufgerufen werden. Dies wird relativ schnell zu einem Stack Overflow führen.
Setze deine Subs alle hinter das End und schließe sie immer mit einem Return ab.
Mehr habe ich mir noch nicht angesehen.

Gruß

Rolf