Hallo,
ich habe für diesen Zweck einen Timer genommen.
Habe ihn so initialisiert, dass er in Abständen von 1ms einen Interrupt
auslöst.
Will ich nun eine bestimmte Zeit warten, setze ich mit einer Funktion
eine globale Variable auf die zu wartende Zeit in Millisekunden und
starte den Timer.
Der Timer zählt nun im Interrupt die Variable herunter und stoppt wenn
diese Null erreicht.
Im Programm polle ich nun diese Variable und laufe erst weiter, wenn
diese Null erreicht hat.
So habe ich mir die Suche nach fertigen Funktionen erspart. Auch musste
ich mir keine Warteschleife selbstbauen.
Natürlich hat diese Vorgehensweise den Nachteil, das der Controller
nichts anderes machen kann, wärend er wartet.
Für meine Anwendung war es egal, da es zu dem Zeitpunkt nichts anderes
zu tun gibt.
Wenn Du nur eine LED blinken lassen willst, kann dies komplett in der
Interruptroutine gemacht werden.
Einfach den Überlauf des Timers entsprechend timen und in der Routine
den Ausgang toggeln.
Dies hat den Vorteil, dass der Controller in der Hauptschleife noch
Arbeit leisten kann.
Grüße
Christian
Edit:
Ups, zu spät aufs Datum geschaut.
Naja, vielleicht hilft es anderen weiter.