PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt während Delay?



homedom
20.02.2008, 22:29
Hi,
ich wollt mal fragen, ob während einem delay aus der <util/delay.h> datei auch ein Interrupt stattfinden kann? Also das während der Zeit, zb 1000ms, weiterhin die Interruptroutinen ausgeführt werden...

gruß, homedom

Besserwessi
20.02.2008, 22:58
Normalerweisen sollte der Interrrupt möglich sein, wenn man ihn nicht expliziet abgestellt hat. Die Interrupts werden aber die Zeit verlängern.

McJenso
21.02.2008, 17:39
Hallo,

selber benutze ich delay kaum. War da nicht eine Begrenzung? Da kannst du nicht einfach 1000ms eingeben. Das steht aber im Header.
Ansonsten hat Besserwessi ja deine Frage schon beantwortet.

Gruß

Jens

sechsrad
22.02.2008, 18:24
....Die Wartezeit der Funktion _delay_ms() ist auf 262,14ms/F_CPU (in MHz) begrenzt, d.h. bei 20 MHz kann man nur max. 13,1ms warten. Die Wartezeit der Funktion _delay_us() ist auf 768us/F_CPU (in MHz) begrenzt, d.h. bei 20 MHz kann man nur max. 38,4us warten. Längere Wartezeiten müssen dann über einen mehrfachen Aufruf in einer Schleife gelöst werden....

fluchtpunkt
22.02.2008, 18:58
....Die Wartezeit der Funktion _delay_ms() ist auf 262,14ms/F_CPU (in MHz) begrenzt, d.h. bei 20 MHz kann man nur max. 13,1ms warten.
seit aehm? avrlibc 1.6? gilt zusaetzlich:

When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about decreased resolution.

Die Wartezeit der Funktion _delay_us() ist auf 768us/F_CPU (in MHz) begrenzt, d.h. bei 20 MHz kann man nur max. 38,4us warten. Längere Wartezeiten müssen dann über einen mehrfachen Aufruf in einer Schleife gelöst werden....[/quote]
und

If the user requests a delay greater than the maximal possible one, _delay_us() will automatically call _delay_ms() instead. The user will not be informed about this case.