
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo MaPi, vielen Dank für die schnelle Antwort. der Hacken der Sache ist, dass mein Kontroller keine Word-Variablen verarbeiten kann. Gibt es keine Lösung mit Minute/Second usw. auch wenn der Kontroller dabei pausiert. In meinem Programm wäre das egal. Gruß Max > Hallo Max, > ich würde es anders machen, da die CControl mit Deiner Lösung ausschließlich damit zu tun hat, die 30min genau zu warten, ansonsten ist sie blockiert un dkann nichts anderes tun.. > Aus meiner Sicht ist es eine elegantere Lösung, die TIMER-Funktion (die sicher auch bei den neuen CControls existiert) zu nutzen. Folgender Lösungsvorschlag: > > Der freilaufende 16bit Softwaretimer des Betriebssystems wird alle 20ms inkrementiert, das ergibt 65536*20ms=~1310s~21min bis zum nächsten Überlauf. > > Nun, lies einfach den Timerstand vor Beginn der Wartezeit in eine WORD-Variable (Ánfangswert des Timers). Darauf addierst Du eine Wartezeit <=21min (=Zielzeit) in Vielfachen von 20ms. > Abhängig vom aktuellen Timerstand kann der Zielwert in der Variablen durch Überlauf kleiner als der Startwert sein. Das gleiche passiert auch mit dem Timer, so das beide immer miteinander korrelieren. > Du darfst aber nicht >21min nutzen, da dann die Werte mehrfach belegt sind. > > Der Vorteil dieser Maßnahme ist, dass Du immer nur mal kurz in einer größeren Programmschleife den Stand des laufenden Timers mit dem Zielwert in der Variablen vergleichen musst, ob dieser erreicht bzw. überschritten ist. Das >= ist wichtig, um robust genug zu sein - auf die Millisekunde kommt es ja hier nicht an. Ansonsten kann die CControl in der Zeit andere Dinge tun als nur zu warten - z.B. mit Dir "Vier Gewinnt" spielen. > > Um nun eine Zeit >21min zu programmieren, solltest Du z.B. alle 10min oder Viertelstunde den neuen Zieltimer errechnen und erneut die Arbeit an anderen Aufgaben fortsetzen und immer mal nach der Variablen schauen. > > Probier mal, ob Du es hinbekommst. > Grüsse, MaPi > > > > Hallo zusammen, > > in mein Programm möchte ich eine Zeitschleife von einer halben Stunde einfügen. > > Vielleicht kann mir jemand helfen,damit ich ein Programm mit "Minuten" hinbekomme. > > Mein Beispielprogramm lautet: > > > > for x=1 to 120 '= warten 10 min > > pause 250 > > next > > for x=1 to 240 '= warten 20 min > > pause 250 > > next > > Danke im Voraus. > > Gruß Max |
| Antwort schreiben |