Hi Dane,
wie wäre es, wenn Du Deinem Problem einen Interrupt spendierst, der z.B. auf 100ms eingestellt ist. In der Interruptserviceroutine kannst Du dann vorher gesetzte Variablen dekrementieren und auf 0 testen.
Wenn zB. die Variable X mit dem Wert 20 initialisiert und im 100ms dekrementiert wird, hast Du nach (20 x 100ms = ) 2 Sekunden einen 0 - Durchgang. Der Vorteil dieses Verfahrens ist, das die restlichen Routinen weiter arbeiten können.
Bevor Du jetzt Fragst, wie man einen Interrupt programmiert, dies habe ich bei AVR's selbst noch nicht gemacht, ich weis aber, das AVR's Hard - und Softwareinterrupts zur Verfügung stellen (-> siehe Datenblatt).
Grüße Klaus
Lesezeichen