tim09
19.10.2009, 14:20
Hallo Leute, ich bräuchte mal eure Hilfe.
Ich habe folgenden Thread gelessen. http://www.rn-wissen.de/index.php/Hallo_Welt_f%C3%BCr_AVR_%28LED_blinken%29
Da steht z.B.
#ifndef F_CPU
#define F_CPU 1000000
#endif
// So viele IRQs werden jede Sekunde ausgelöst.
// Für optimale Genauigkeit muss
// IRQS_PER_SECOND ein Teiler von F_CPU sein
// und IRQS_PER_SECOND ein Vielfaches von 100.
// Ausserdem muss gelten F_CPU / IRQS_PER_SECOND <= 65536
#define IRQS_PER_SECOND 2000 /* 500 µs */
Ich verstehe es nicht, warum F_CPU/IRQS_PER_SECOND<=65536 sein muss? F_CPU ist 1M Takt/Sekunde und IRQ wird 2000 mal/Sekunde aufgerufen. D.h. pro ISR entspricht 500 Takten oder? Kann IRQS_PER_SECOND nicht 1 oder 2 sein?
Ich habe folgenden Thread gelessen. http://www.rn-wissen.de/index.php/Hallo_Welt_f%C3%BCr_AVR_%28LED_blinken%29
Da steht z.B.
#ifndef F_CPU
#define F_CPU 1000000
#endif
// So viele IRQs werden jede Sekunde ausgelöst.
// Für optimale Genauigkeit muss
// IRQS_PER_SECOND ein Teiler von F_CPU sein
// und IRQS_PER_SECOND ein Vielfaches von 100.
// Ausserdem muss gelten F_CPU / IRQS_PER_SECOND <= 65536
#define IRQS_PER_SECOND 2000 /* 500 µs */
Ich verstehe es nicht, warum F_CPU/IRQS_PER_SECOND<=65536 sein muss? F_CPU ist 1M Takt/Sekunde und IRQ wird 2000 mal/Sekunde aufgerufen. D.h. pro ISR entspricht 500 Takten oder? Kann IRQS_PER_SECOND nicht 1 oder 2 sein?