Hallo

Erst einmal herzlichen Dank für die schnellen Antworten. Suuper.

Vieleicht hab ich mich unklar ausgedrückt darum noch mal.

Das Programm soll nach dem es per Pulsein (wert wird von RC Fernsteuerung zur verfügung gestellt) einen Wert größer 150 erkannt hat das restliche Programm abarbeiten (ohne Pause zwischen den einzelnen Do Loop Teilen).
Die waitms haben die Aufgabe
W es soll der Port Pb1 für 1500ms = 1,5s auf 1 gesetzt werden so das für diese Zeit über ein Relais ein 12V Motor seine Arbeit auf nimmt.
Das Funktioniert ganz ordentlich und wird gebraucht um über den wert Zeit einen Feinabgleich vornehmen zu Können da der Motor am Ende 10 mal exakt die beiden Schritte ausführen muss sonst würde sich durch die
Verschiebung eine heftige Ungenauigkeit ergeben.

Bevor jetzt der Bereich mit I abgearbeitet wird macht das Prog eine mir unerklärliche Pause. Normalerweise sollte Übergangslos von dem vorangehenden Do Loop zu diesem weiter gegangen werden , hier liegt mein
erstes Problem . Die Do Loop Schleife wird korekt abgearbeitet die Wartezeit wird gebraucht für die Optik Schnell rein langsam raus , in der Art eines Stoßdämfers.

Wenn I abgearbeitet ist soll der 12V Motor noch mal anlaufen um in die Startposition zurück zu kehren. Hier ist dann das 2. Problem , dieser Schritt wird völlig unvorhersehbar ausgeführt oder Komplett Ausgelassen.

Valen du hast Recht ich weiß nicht sicher wo das Prog hängen bleibt , doch wenn W < 150 ist sollja nichts passieren (tut es auch nicht) erst wenn der Wert größer wird soll der Rest abgearbeitet werden. Am Pb1 liegt das Relais und an Pb0 der Servo.

ober allgeier bitte sei mir nicht böse aber ich kann mit dem was du sagst im Moment noch nichts anfangen , der Compiler sagt gar nichts weil für ihn alles ok. ist sonst käme eine Fehlermeldung in Form "Error Fehler in Zeihle x"

Thomas$ wie meinst du das , Do Loop ist die Schleife in der gewartet werden soll bis sich der Wert W ändert . Unter deinem Link ist noch nichts enthalten.

HeXPloreR das erste wait in die IF Then zu setzen kann ich nachvolziehen und werde ich übernehmen . Das mit dem Servo habe ich oben noch mal erklärt wir haben es ausprobiert und es sieht fürs erste gut aus. Die letzte Schleife werde ich noch mal überarbeiten da es reichen müsste den Port Pb1 für benötigte Zeit auf 1 zu setzen und dann wieder auf 0. Wegen Loop , oben steht 2 mal Do unter einander ich hatte gedacht das dadurch das ganze verschachtelt ist un der Sprung der erst erfolgen soll wenn
Z = 300 ist darum Loop Until Z = 300. Das müsste dan in etwa so aussehen:

Portb.1 = 1
waitms 1500
Portb.1 = 0
Loop

Wenn jetzt end eingetragen wird bleibt das Programm dann nicht einfach stehen ?


Auf alle Fälle werde ich die Anregungen probieren. Eine Bitte kann jemand untersuchen warum die unerwünschte Pause auftritt ?
danke un freundlich Güße Henry