Hallo, Folgendes macht mich im Moment völlig fertig, ich schnall es einfach nicht: ATiny26 8Mhz über internal RC-Clock, bestmöglich kalibriert. Ich nutze Timer-Overflow0. Kein weiterer Int aktiviert. Der Timer-Vorteiler steht auf 1 In der ISR wird nur ein Portbit an-aus geschaltet, damit ich die Frequenz des INT messen kann. Nun müsste der Timer-Int mit einber Frequenz von 31250Khz kommen. Denn 8000000/256 = 31250 Klappt einwandfrei, Oszi und Frequenzzähler bestätigen das sogar recht genau. Das Signal ist ein wunderbares rechteck ohne Störungen etc. Nun will ich aber einen Timer-Int mit 40Khz Also lade in der ISR (direkt als erstes) TCNT0 mit einem Wert vor. Der Wert ist 56, weil: 256-56=200 und 8000000/200 = 40Khz. KLAPPT NUR NICHT. Die gemessene Frequenz ist immer ca.36Khz. 40Khz bekomme ich erst ab einem Vorladewert von ca.75 Könnte ich natürlich so lassen, aber rechnerisch stimmt es einfach nicht und will wissen warum. Kann mir das mal jemand erklären? Grüsse Dennis
Für konstante Interrupt-Rate sollte man den CTC Mode verwenden, denn sonst beeiflusst die Verarbeitungszeit des Interrupts das Zeitverhalten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.