
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Ich möchte ein paar Relais mehrmals pro Minute schalten. Kein Problem. > Dazu habe ich ein Programm geschrieben was das machen soll. Dummerweise schalten die Relais > nur einmal pro Minute um. Dann hast Du Fehler im Programm. > Eine OR Verknüpfung im IF Befehl: > (if second=5) OR (second=20) then goto ein …..hat nicht funktioniert. Mal abgesehen von der falsch gesetzten Klammer wird diese OR Verknüpfung durchaus funktionieren. > Auch wenn ich zwei IF Befehle hintereinander schreibe bringt es nix. Wenn das korrekte OR -Statement aufgrund eines Fehlers an anderer Stelle schon nicht die gewünschte Wirkung zeigt, wird ein ersatzweise eingefügtes anderes korrektes Statement(-paar) den Fehler, der ja an anderer Stelle liegen muss, auch nicht korrigieren können. ;-) > Was kann ich sonst > noch versuchen ? Debuggen. Wenn Du der Meinung bist, an einer Stelle (z. B. dem OR-Statement) liege der Fehler,. schreibe ein minimales Programm mit diesem Statement und schaue, ob es tut was es soll. Beim OR-Statement z. B. #loop if (second = 5) OR (second = 20) then print "if (second = 5) OR (second = 20) war true" pause 1 goto loop end > 'Sensorabfrage' > #anfang > if zuend = on then goto warn > if tast1 =off then goto spuelen > if tpoel<dauer then goto dauer Das Kleiner-Zeichen ist ein Sonderzeichen (HTML). Daher so etwas immer in <code> </code> einpacken und < und > verwenden und die Vorschau bemühen. Ansonsten sind Deine Listings auf Anhieb nicht lesbar. Du hast den Code ab den Labeln spuelen und dauer nicht gepostet. > if tpoel<heiz then goto heizphase > #heizphase Sinnfrei, oder? > LED4=1 > if second=5 then goto ein > if second=25 then goto aus > goto anfang > #ein rel1=on :rel2=on :rel3=on goto anfang > #aus rel1=off :rel2=off :rel3=off goto anfang > goto anfang > #warn > LED2=1 > beep 200,50,20 'Spülwarnung' > goto anfang > > Jetzt kommt das seltsame: > Wenn das Programm durch Taster 1 auf #warn springt, bleibt es dort > hängen und nervt mit pieeeep...pieeep....usw. bis in alle Ewigkeit, obwohl der Taster > nicht mehr gedrückt wird. Dabei sollte es doch eigentlich beim nächsten Schleifendurchlauf nicht > mehr zu #warn springen. Irgendwie komme ich der Sache nicht auf die Schliche ;-{ Bitte die Zeilenlänge selbständig kürzen. Diese war zu lang. Ich finde das Verhalten nicht seltsam, da ich nicht sehe, wo die Variable zuend je zurückgesetzt wird. Von daher ist bei einmal gesetztem zuend der Code > 'Sensorabfrage' > #anfang > if zuend = on then goto warn ... > #warn > LED2=1 > beep 200,50,20 'Spülwarnung' > goto anfang eine offensichtliche Endlosschleife. Vielleicht solltest Du Dich zunächst einmal an einfacherern Aufgaben versuchen. HTH Bye Achim |
| Antwort schreiben |