Forum: Mikrocontroller und Digitale Elektronik Tiny26 timer


von Georg (Gast)


Lesenswert?

Hallo,

ich beschäftige mich grad mit dem Tiny26 und habe da ein kleines
Problem.
Ich habe den internen Oszillator auf 4Mhz eingestellt.

Jetzt brauche ich einen Timer mit 10µsec.
Wie berechne ich den Wert für das TCNT0 Register unter der
Berücksichtigung des Vorteilers.
Dass ich danach noch ne Kalibrierung mit dem OSCCAL Register
durchführen muss ist mir klar...

Gruss und Danke,
Georg.

von ...HanneS... (Gast)


Lesenswert?

Wieviel Takte muss der Tiny26 in den 10µs machen? 40?

Willst du alle 10µs einen Timer0-Überlauf-Int?
Dann wäre Vorteiler schonmal 1:1.
TCNT0 musst du dann in der ISR auf 40 vor Überlauf stellen, plus die
Anzahl der Takte, die seit dem Überlauf vergangen sind (um die 7),
besser ist es tcnt0 einzulesen, den Reload-Wert+2 (oder +3?) zu
addieren und zurück zu schreiben.

Allerdings ist dein AVR dann schon ganz schön ausgelastet, denn für
Aufruf und Rücksprung gehen schonmal um die 10 Takte drauf, dann SREG
sichern und wiederherstellen, Timer reloaden, und dann noch das, was du
eigentlich tun möchtest, das könnte arg eng werden.

...

von Georg (Gast)


Lesenswert?

hi,

hmm...
auf 40 hatte ich es schon...

ich brauche eigentlich ein PWM signal mit 20msec Amplitudendauer und
mit einem pos signal von 1msec bis 2msec. In einer recht guten
auflösung z.B. 10µsec. Zur Ansteurung eines Servos...

Da ter Tiny aber nur pwm-signale ab 20kHz erzeugt wollte ich es so
lösen...

Habt ihr ne andere idee?

Gruss und Danke,
Georg.

von ...HanneS... (Gast)


Lesenswert?

Willst du die Servoimpulse nun erzeugen oder auswerten?

...

von Georg (Gast)


Lesenswert?

Beides..

die auswertung mache ich mit dem Interrupteingang...

Gruss,
Georg.

von ...HanneS... (Gast)


Lesenswert?

Schau mal hier: www.hannes.de.md

...

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.