Timer-Probleme mit ATtiny 2313

OP Persönliche Seite #1647649
Lesenswert?

Moin,

ich habe ein paar Probleme mit meinem Timer.
Ich möchte ca. 1 mal pro Sekunde einen Wert dekrementieren.
Dazu verwende ich auf meinem ATtiny 2313 den Timer0 (8-bit).
Systemtakt wird über die internen 8Mhz bereit gestellt.

Wenn mich nicht alles täuscht, berechnet sich die Frequenz mit der ein 
Timer-Overflow-Interrupt ausgelöst wird wie folgt:

Das wären dann bei mir:

Ich habe jetzt also im Timer-Interrupt eine folgende Abfrage eingebaut:
1
ISR(TIMER0_OVF_vect){
2

3
   static uint8_t step = 0;
4

5
   if( step >= 122 ){
6
      x--;
7
      step = 0;
8
   }
9
   else step++
10

11
}
x ist eine globale Variable.

Der Interrupt wird auch ausgelöst und der Wert dekrementiert. Nur leider 
dauert das läntger als eine Sekunde. Tausche ich 122 durch 15 aus, kommt 
es ungefähr hin. Warum?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren