Forum: Compiler & IDEs delay-Funktion in WINARM?


von world (Gast)


Lesenswert?

Hallo,

gibt es eine delay-FUnktion in WINarm wie bei WINavr??


Wenn nicht, gibt es die vielleicht schon als lib oder so??


Gruss
world

von mthomas (Gast)


Lesenswert?

Die in WinARM enthaltene libc ist die newlib und enthält kein 
"vorgekautes" delay wie die delay.h von avr-libc. Die Anzahl der 
Durchläufe für "Zeitverbrennschleifen" sind aufgrund der verschiedenen 
unterstützten Controller nicht einfach zu errechnen, da nicht nur von 
Prozessortakt sondern auch vom Speicherinface abhängig (Waitstates für 
RAM und/oder Flash, Bus-Takt(e), evtl. MAM etc.). Fertige "lib oder so" 
kann man bestenfalls für sehr ähnliche Controller erstellen.
Alternativen:
- selbstgeschriebene Zeitschleifen mit Oszilloskop ausmessen (ziemliches 
gebastel, kaum portabel, relativ einfach)
- Bei Startup mit einem Hardwaretimer einen Kalibrierungswert ermitteln 
und später Anzahl der Schleifendurchläufe damit errechnen (schon besser, 
nicht wirklich kompliziert)
- Einen Hardwaretimer stetig laufen lassen und alle Wartefunktionen 
durch Vergleich mit einer in der Timer-ISR aktualisierten Variable oder 
dem Counter-Register selbst mit einem Startwert durchführen (beste 
Lösung, nicht kompliziert und zuverlässig)

Martin Thomas

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.