Timer1 und das zeitleck

Gast #1161470
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
}

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