Hallo zusammen,
Ich habe gerade einen ATTiny 13 so programmiert, dass er mir einen Ausgang im 36kHz Rhytmus ein- und ausschaltet. Realisiert ist das über einen timergesteuerten Interrupt, der den Ausgang immer fleißig toggelt. Das funktioniert soweit auch.
Mir ist aber aufgefallen, das ich mit den errechneten Timerwerten recht ordentlich danebenliege. Konkret habe ich den ATTiny13 auf 9,6 MHz laufen und bei Prescaler = 1 und CompareWert von 133 sollte es alle ca. 14µs einen Interrupt geben (entspricht ca. 72kHz, nach an/aus toggeln ca. 36kHz). Heraus kamen aber nur ca. 32kHz (gemessen mit Freq.-Zähler).
Um auf 36 kHz zu kommen, mußte ich den Comparewert auf 116 herabsetzen. Wenn ich jetzt aus diesem Wert den Prozessortakt errechne, ergeben sich gerade mal 8,4 MHz. Kann das sein ? Ist die Abweichung des internen Taktgebers tatsächlich so groß ?
Schonmal danke für eure Antworten.
Gruß
Pirx
Ich habe gerade einen ATTiny 13 so programmiert, dass er mir einen Ausgang im 36kHz Rhytmus ein- und ausschaltet. Realisiert ist das über einen timergesteuerten Interrupt, der den Ausgang immer fleißig toggelt. Das funktioniert soweit auch.
Mir ist aber aufgefallen, das ich mit den errechneten Timerwerten recht ordentlich danebenliege. Konkret habe ich den ATTiny13 auf 9,6 MHz laufen und bei Prescaler = 1 und CompareWert von 133 sollte es alle ca. 14µs einen Interrupt geben (entspricht ca. 72kHz, nach an/aus toggeln ca. 36kHz). Heraus kamen aber nur ca. 32kHz (gemessen mit Freq.-Zähler).
Um auf 36 kHz zu kommen, mußte ich den Comparewert auf 116 herabsetzen. Wenn ich jetzt aus diesem Wert den Prozessortakt errechne, ergeben sich gerade mal 8,4 MHz. Kann das sein ? Ist die Abweichung des internen Taktgebers tatsächlich so groß ?
Schonmal danke für eure Antworten.
Gruß
Pirx