
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Wait timer ???Soll jetzt warten bis die 20ms abgelaufen sind bevor es weiter geht >..... > Da die Schaltung für eine uhr sein soll müssen die 20ms eingehalten werden. > Wenn ich mit Pause 1 arbeite, wird doch zur pause 1(20ms) die Dauer der Rechenvorgänge dazu addiert... oder? huhuz nico, nein! wenn die abarbeitung des programms auf den pausebefehl rasselt, bleibt für n * 20 ms echt einfach alles stehen und dann geht es mit dem nächsten befehl nach pause weiter. wait hält ebenfalls den gesamtem programmablauf an, allerdings geknüpft an eine bedingung. zum beispiel wait abs(timer - timerstart) >= 1 (wenn du den freilaufenden timer benutzen willst). belies dich bitte noch mal genau über die funktionsweise des 20-ms-timers. in deinem fall müsstest du also vor den port-operationen eine variable mit dem wert des timers füttern, dann die portspielereien abrasseln lassen und anschließend oben getipperte wait-anweisung verwenden, die wartet, bis der zyklus beendet ist. > Hier sollen die 20ms starten timerini = timer da1=on Schaltet den Zustand 1 auf dem Schieberegister Ic pulse da2 Speichert die 1 für den ersten Speicherplatz da1=off Schaltet den Zustand 0 auf dem Schieberegister Ic For I = 1 to 7 pulse da2 Speichert die 0 für die nächsten 7 Speicherplätze next I wait abs ( timerini - timer ) = 1 ......... hier gänge es dann weiter fraglich ist allerdings, ob du es mit basic schaffst, diese ganzen dinge in einem 20-ms-schlitz abzuarbeiten... könnte knapp werden. für die variable timerini musst du übrigens ein word opfern (wird dir klar, wenn du über die funktion TIMER alles weißt). mit dieser abfrage kannst du übrigens die routine erst dann starten lassen, wenn gerade ein neuer 20-ms-schlitz begonnen hat. zum bleistift so: timerini = timer wait abs (timer - timerini) = 1 da1=on pulse da2 da1=off For I = 1 to 7 pulse da2 next I wait abs (timer - timerini) = 2 mach dir aber nen programm, mit dem du todsicher prüfen kannst, ob du die vorgänge in der zeit durchbekommst, sonst geht das logischerweise nicht auf. |
| Antwort schreiben |