Moin zusammen,
ich habe ein Array S[1600] und ein Array [16] diese zähle ich beide mit
dem ersten code Beispiel durch. Um die durch zulaufen habe ich mit dem
zweiten code Beispiel ein Interrupt erstellt.
Rein rechnerisch müsste ich bei einer Timer Frequenz von 80kHz geteilt
durch 1600 Stellen auf 50Hz kommen und 80kHz geteilt durch 16 Stellen
müssen das 5kHz sein. Wie kann ich das jetzt am besten messen ob das
auch passt?
1 | ISR(TIMER1_COMPA_vect){ //Interrupt
|
2 | m=m+1;
|
3 | if(m>1599)
|
4 | m=0;
|
5 |
|
6 | //Dreieckarray hochrechnen
|
7 | n=n+1;
|
8 | if(n>15)
|
9 | n=0;
|
10 | }
|
1 | //Timer1 instalisieren
|
2 | TCCR1A = 0; //Register definiert zurücksetzten
|
3 | TCCR1B = 0; //zuerst Register definiert zurücksetzen
|
4 | TCNT1 = 0; //Zählerwert zurücksetzten
|
5 |
|
6 | OCR1A = 199; //Timer1 80kHZ einstellen
|
7 | TCCR1B |= (1 << WGM12); //CTC mode
|
8 | //TCCR1B |= (0 << CS12) | (0 << CS11) | (1 >> CS10); //kein Prescale
|
9 | TCCR1B |= (1 << CS10); // clk/1 prescale 1024
|
10 | TIMSK1 |= (1 << OCIE1A); //Aktivieren des Timer-Vergleichs-Interrupt
|