Datum: 14.05.2008 16:56
Hallo, ist die Funktion "_delay_ms()", und ihre Verwandten, durch interrupts zu unterbrechen? In der avr-libc 1.6 Anleitung kann ich keine genaue Beschreibung finden. Gruß Christian
Datum: 15.05.2008 06:58
Hallo, kannst du es etwas genauer beschreiben? Laut Lib läuft dort doch ein Timer? Gruß
Datum: 15.05.2008 08:06
Da läuft kein Timer. Hast Du Dir schon mal das Header-file dazu angesehen? Darin steht geschrieben:
void _delay_ms(double __ms) { uint16_t __ticks; double __tmp = ((F_CPU) / 4e3) * __ms; if (__tmp < 1.0) __ticks = 1; else if (__tmp > 65535) __ticks = 0; /* i.e. 65536 */ else __ticks = (uint16_t)__tmp; _delay_loop_2(__ticks); } |
Und zusätzlich:
void _delay_loop_2(uint16_t __count) { __asm__ volatile ( "1: sbiw %0,1" "\n\t" "brne 1b" : "=w" (__count) : "0" (__count) ); } |
Du siehst, da hier kein Timer verwendet wird, ist sie interruptable.
Datum: 15.05.2008 08:32
Ok, vielen Dank für die Info. Wo findest du die Sourcen? Gruß
Datum: 15.05.2008 09:36
>Wo findest du die Sourcen?
In den header-files delay.h und delay_basic.h unter
C:\WinAVR-20070525\avr\include\util (kann bei Dir natürlich anders
sein).
Datum: 15.05.2008 11:33
Weil die delay-Routinen keinen Timer benutzen, ist natürlich zu beachten, dass sich die Verzögerungszeit um die Dauer der Ausführung des Interrupthandlers verlängert.
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel