INFO - FAQ - CC2-Forum - CCPro-Forum |
mit einem digit fehler im freilauftimer musst du schon leben können in basic. wenn du zum bleistift deinen timer löschst, aber bereits 19 ms seit dem letzten increment vergangen sind, dann setzt du den zwar erstmal auf null, doch noch bevor die nächste aktion in gang kommt, steht der timer schon auf eins. somit ist die periodendauer deines eingangssignal schlicht 20 ms zu lang geschwindelt. im übrigen verwende ich in basic immer folgendes kontrukt zum messen kurzer zeiten: define timerini word 'variable zur aufnahme des timers vor der messung timerini = timer ... 'tu dies ... 'tu jenes print abs (timer - timerini) '(zum beispiel) verbrauchte zeit in 20ms-steps ausgeben abs (timer - timerini) liefert stets einen positiven wert, selbst dann, wenn der timer während der messung überläuft, somit ist umständliches löschen oder das warten auf einen startwert unnötig. es bleibt aber auch mit dieser methode dabei, das ein digit fehler zu kalkulieren ist. wenn du mehr genauigkeit benötigst, kannst du den systemtimer benutzen. der is gut 10.000 mal schneller. seine anprogrammierung ist im manual zum 68HC05 beschrieben. |
Antwort schreiben |