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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.