Hallo zusammen,
Danke @ Feuerring, das war der entscheidende Tip.
@Peter(TOO) meinst du mit Debugger den Simulator (F2) ?. Ich habe keine Ahnung wie ich die Werte die vom VB Programm kommen dort hineinbekomme.
LG MrPower
Mein Tipp an MrPower
schreibe mit Einrückungen und Absätzen, erleichtert das lesen ungemein
Beispiel:
bei jeder Schleife / Bedingung usw. Beginn um ein nach rechts einrücken und am jeweiligen Ende wieder ein zurückCode:Ms=0 Do 'Locate 1 , 1 'Lcd "Bin im Do-Loop" ; S Print "Bin im Do-Loop" Print "Durchlauf Nr. " ; S ' ------ Ms = 0 ----- If Ms = Wert3 Then Gosub Kamera_ein End If Wert34 = Wert3 + Wert4 If Ms = Wert34 Then Gosub Kamera_aus End If If Ms = Wert5 Then Gosub Blitz_ein End If Wert56 = Wert5 + Wert6 If Ms = Wert56 Then Gosub Blitz_aus End If If Ms = Wert7 Then Gosub Ventil_ein End If Wert78 = Wert7 + Wert8 If Ms = Wert78 Then Gosub Ventil_aus End If If Ms = Wert9 Then Gosub Ventil_ein End If Wert91 = Wert9 + Wert10 If Ms = Wert91 Then Gosub Ventil_aus End If Loop Until Ms > 2000
Geändert von Feuerring (13.07.2016 um 09:40 Uhr)
Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
Hallo zusammen.
kann mir einer sagen warum bei dem Code
If Ms = Wert3 Then
Gosub Kamera_ein
End If
das Programm nicht ins Unterprogramm verzweigt. Wenn ich das Gleich durch ein Größer ersetze verzweigt es schon, bzw die am Ausgang angeschlossene LED leuchtet im ersten Fall
nicht, im zweiten Fall schon.
LG MrPower
If Ms = Wert3 Thenwelchen Wert hat denn WERT3 ... sollte > 0 aut jeden Fall sein ?!Wert3 = Val(daten_ar(3)) 'Anfang Kameraauslösung
Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
Hallo Feuerring,
die Werte sind variabel, die hängen von der Benutzereingabe ab. Die Frage ist warum geht die LED bei = nicht an. Bei >
funktioniert das doch auch. Die LED bleibt dann solange an bis Wert34 erreicht ist, danach klappert es da beide Werte
> ms sind.
LG MrPower
Die Frage welcher Wert wird übergeben z.B. 0 der wird nicht klappen, aber MS>0 funktioniert natürlich ...Die Frage ist warum geht die LED bei = nicht an. Bei >
Dann ist die Frage wie lange braucht das Programm bis es in die Do/Loop Schleife geht, in der Zwischenzeit zählt der Timer bereits MS hoch, deswegen auch MS=0 vor der Do/Loop Schleife ...
wenn Deine Do/Loop Schleife z.B. in der Ausführung länger als 1ms dauert, zählt in der Zwischenzeit der Timer MS hoch, da ist es dann Glücksache den genauen ms Wert zu treffen,
dein Programm funktioniert nur wenn die Do/Loop Schleife x fache Durchläufe in einer ms macht ...
Was man auch machen könnte, in der Interrupt Routine, wo derzeit ms hochgezählt wird deine IF - Anweisungen und die Ausgaben zu legen ... dieses sollte aber dann in der Ausführung nicht länger als 1ms dauern ...
Gruß Ralf ... Projekt-Beschreibungen www.greinert-dud.de ... "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
Lesezeichen