Kennt jemand eine Delay Schleifen Routine die nicht so eingeschränkt ist wie jene im AVR Studio? Denn die geht ja nur bis maximal 262.18ms (oder so) durch die F_CPU in MHz also bei meine 8MHz nur bis 32ms.. und ich brauche in meinem Programm Delay Schleifen von 200us (_delay_us) bis hinauf auf 2 sec.. kennt jemand so etwas was große Bereiche abdeckt? mfg
Berni wrote: > Kennt jemand eine Delay Schleifen Routine die nicht so eingeschränkt ist > wie jene im AVR Studio? Welche? > kennt jemand so etwas was große Bereiche abdeckt? mfg _delay_us oder _delay_ms.
ja ich meinte die beiden _delay_us und _delay_ms (#include <util/delay.h>) doch hier hab ich bei der 2 Sekunden Delay Schleife das Problem, dass ich eine for-Schleife mit ca. 63 _delay_ms(255) machen müsste da diese ja bei 8Mhz bis maximal 32ms läuft
/** \ingroup util_delay Perform a delay of \c __ms milliseconds, using _delay_loop_2(). The macro F_CPU is supposed to be defined to a constant defining the CPU clock frequency (in Hertz). The maximal possible delay is 262.14 ms / F_CPU in MHz. */ void _delay_ms(double __ms) { also vll überseh ich da ja was aber für mich sieht das ganz so aus :S
1 | /**
|
2 | \ingroup util_delay
|
3 | |
4 | Perform a delay of \c __us microseconds, using _delay_loop_1().
|
5 | |
6 | The macro F_CPU is supposed to be defined to a
|
7 | constant defining the CPU clock frequency (in Hertz).
|
8 | |
9 | The maximal possible delay is 768 us / F_CPU in MHz.
|
10 | |
11 | If the user requests a delay greater than the maximal possible one,
|
12 | _delay_us() will automatically call _delay_ms() instead. The user
|
13 | will not be informed about this case.
|
14 | */
|
Ich würd dann mal die C-Bibliothek aktualisieren.
> doch hier hab ich bei der 2 Sekunden Delay Schleife das Problem, Ist das Dein Ernst? Du willst den AVR wirklich 2 Sekunden lang Takte zählen lassen? Ist Dir eigentlich bewusst, dass Du beim Kauf von AVRs dessen Timer mitbezahlt hast? Delays für einige zehn bis hundert Mikrosekunden sind ja ok, aber ab Millisekunden nutzt man besser einen der vorhandenen Timer. ...
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.