Hallo Achim,
Gruß
Dino
Man muß mit der Prozessorzeit eines kleinen Controllers immer gut haushalten. Wenn er in einer Interruptroutine (ISR) drinsteckt dann kann er in dieser Zeit nichts anderes machen als die Sachen die man in diese Routine reinprogrammiert hat. Die werden dann eins nach dem anderen abgearbeitet. Wenn man die ISR schnell wieder verläßt, dann kann er wieder auf andere Interrupts reagieren. Das heißt man verliert keine Ereignisse die irgendentwas wichtiges auslösen sollen. Wenn man für eine Wartezeit in der Hauptroutine nen Delay/Wait einsetzt dann ist es eignetlich nur eine Schleife in der der Controller nichts anderes macht als Strom verbrauchen. Er kann aber aus dieser Schleife durch einen Interrupt herausgerissen werden und auf Ereignisse reagieren. Noch besser wäre es, wenn man zB mit einem Timer einen festen Zeittakt von zB 10ms vorgibt (eine Variable bei jedem Timerinterrupt hochzählen läßt) und wenn man dann irgendwo eine Wartezeit benötigt (zB für die 750ms Meßzeit eines DS18S20 1Wire-Sensors) dann testet man in der Hauptroutine ob diese Variable soweit hochgezählt hat das 750ms (also 75 Interrupts) ausgeführt wurden. Damit kann die Hauptroutine auch weiterlaufen und man kann auch hier weitere Aufgaben ausführen. Die Wartezeit wird dann sozusagen nebenher ausgeführt. Mit dieser Methode kann man wesentlich mehr aus der zur Verfügung stehenden Prozessorzeit rausholen als mit nem normalen Delay oder Wait oder sowas.Nach deiner Angabe macht der Proz in der Wartezeit nichts sinnvolles. Bei delay ist mir das klar. In wie weit gilt das für dies Teil? Hatte angenommen, das die Teil durchgearbeitet wird und danach noch was anderes macht, z.B. Abfrage Taster oder Sensoren oder Absturzerkennnung. Wenn ich mir es genau anschaue, hast du recht. Es wird die Schleife do - while durchlaufen.
Gruß
Dino