Forum: Mikrocontroller und Digitale Elektronik Wait funktion


von DUDE (Gast)


Lesenswert?

Hallo

Ich suche ein WAIT() Funktion unter GCC. Gibt es was vertiges oder
muss ich mir selbst was programmieren. In CodeVision gabs
wait_a_second(time);
Zuerst hab ich versucht mit dem TIMER0 das Problem zu lösen. Ich hab 
einfach jedes mal wenn der TIMER in Overflow war etwas aktiviert. Leider 
ist der TIMER zu schnell
Gibt es irgendwo ein source Beispiel für eine UHR per AVR

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo,

wenn du den Timer-Prescaler z.B. auf 1024 einstellst und einen passenden 
Quarz verwendest, dann kannst du mit dem richtigen Wert im 
Compare-Register sicher eine für ne Uhr geeignete Frequenz bekommen. Die 
genauen Werte musst du dir halt ausrechnen.

MfG
Andreas

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Eine Wait-Funktion gibt es im GCC leider nicht. Wenn du dir selber eine 
schreibst, musst du darauf achten, dass in der Schleife irgend ein 
Befehl steht (z.B. i++;), sonst wird die Schleife vom Compiler 
wegoptimiert.

von Lars (Gast)


Lesenswert?

Ich habe mir dazu eine Kombination aus Hard/Software-Timer gebastelt. So 
wird es auch in einigen der im Web zu findenen Beispiele gemacht:
du nimmst einen der Timer und waehlst einen guenstigen Prescale-Faktor, 
so dass wenn du per software die von diesem Timer erzeugten "Impulse" 
(bzw. Overflows) zaehlst, du bei einem bestimmten Wert moeglichst genau 
den von dir gewuenschten Zeitintervall erreichst.

Ich habe das ganze in ASM realisiert, deshalb wird dir denke ich der 
Beispielcode nicht viel helfen. Ansonsten einfach Bescheid sagen.

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.