hi
ich will das mein schönes timer interrupt alle 448µs aufgerufen wird,
aber irgendwie scheints nicht zu klappen, ich weis nicht warum.. könnte
mal einer meine werte überprüfen?
Fosc = 16 MHz
TCCR2 = (1<<CS22|1<<CS20) // <-- prescaler 1024 (?)
TCNT2 = 249 // overflow nach 7 mal inkrementieren:
nach meiner rechnung stimmt das..
Ftimer = 16 000 000Hz / 1024 = 15625Hz, d.h. alle 1/15625s nen
inkrement, das entspricht 64µs, d.h. nach 7 mal inkrementieren sind
448µs verstrichen
das stimmt alles oder?
ich post lieber mal mein code, nicht das darin der fehler liegt..
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | SIGNAL(SIG_OVERFLOW2)
|
5 | {
|
6 | TCNT2 = 249;
|
7 | }
|
8 |
|
9 | int main(void)
|
10 | {
|
11 | TCCR2 = (1<<CS22|1<<CS20);
|
12 | TCNT2 = 249;
|
13 | TIMSK |= (1<<TOIE2);
|
14 | sei();
|
15 |
|
16 | while(1);
|
17 |
|
18 | return 0;
|
19 | }
|
sry das ich euch damit belästige, aber ich find den fehler nicht..