Forum: Mikrocontroller und Digitale Elektronik Timer1 und das zeitleck


von Markus (Gast)


Lesenswert?

Hallo,
ich habe die Zeitmessung  aus dem Tutorial von Christian Schifferle 
nachgebaut (zwei Taster, und die Zeit zwischen dem Betätigen der beiden 
Taster wird gemessen: Beitrag "C Anfänger Tutorial AVR" ), mein 
Atmega8 steht noch mangels Oszi auf dem internen Takt, als Prescaler 
habe ich 1024.
Wenn ich die Zeitmessung nun starte, verliert er in ca. 3 Min eine 
Sekunde, kann das an der Ungenauigkeit des internen Oszillators liegen?
der entscheidene Codeschnipsel:
1
void calc_time(unsigned short int tmp)   //Übergeben wird die Anzahl der Überläufe
2
{
3
  unsigned short int nTicks;  // für das was bei Abbruch noch in ICR1 steht
4
  unsigned long int zeit;          // wird berechnet
5
6
  nTicks=TCNT1;      // 
7
  zeit = (tmp * 65536 + nTicks)*10000/9765625;  //Berechnung der  Zeit 
8
  lcd_number(zeit);
9
}

von Manchmal (Gast)


Lesenswert?

Ja. kann es.

von STK500-Besitzer (Gast)


Lesenswert?

>kann das an der Ungenauigkeit des internen Oszillators liegen?

Nicht nur "kann", sondern "es liegt daran!".
Probier's mal mit einem Quarz, falls der dir nicht zu teuer ist...

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.