Forum: Mikrocontroller und Digitale Elektronik Timer-Probleme mit ATtiny 2313


von Hannes E. (k1ngarthur) Benutzerseite


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?

von spess53 (Gast)


Lesenswert?

Hi

CKDIV-Fuse?

MfG Spess

von Marcel V. (antis)


Lesenswert?

CKDIV wäre naheliegend. 8 * 15 = 120 ~ 122

Solltest du noch mal checken, ob die Fuses richtig eingestellt sind. Das 
ist sehr verdächtig

von Hannes E. (k1ngarthur) Benutzerseite


Lesenswert?

Arrrggg.
Da hätt ich auch selbst drauf kommen können.
Jetzt funktioniert es.

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.