Forum: Mikrocontroller und Digitale Elektronik Delay mit Keil µVision für den XC167


von Anfänger (Gast)


Lesenswert?

Hi zusammen,
ich würde gerne in mein Programm eine Verzögerung reinprogrammieren von 
ca. 1s, eigentlich ist die Zeit egal, ich möchte nur eine Diode ein- und 
ausschalten so, dass man sie noch blinken sieht.
Habe da was von der Delay Funktion gehört, wie lautet dieser Befehl 
genau und was muss ich alles für Headers includen?
Danke

von Christian R. (crambow)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.