Forum: Mikrocontroller und Digitale Elektronik Attiny2313 Timer0 Problem


von AVR Beginner (Gast)


Lesenswert?

Hi alle, ich versuche zur Zeit das AVR Timer Tutorial mit einem 
Attiny2313 auszuprobieren.

In 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR 
steht dass man das Register TCCR0 benutzen soll. Ist das richtig? 
AVR-GCC kennt leider nur TCCR0A und TCCR0B Registers.

Danke

von spess53 (Gast)


Lesenswert?

Hi

>AVR-GCC kennt leider nur TCCR0A und TCCR0B Registers.

Das Tutorial bezieht sich auf den AT90S2313 und du hast einen 
ATTiny2313. Das sind zwei verschiedene AVRs. Der Timer des ATTiny hat 
mehr Funktionen und deshalb zwei Control-Register.

MfG Spess

von Stefan B. (Gast)


Lesenswert?

Laut Datenblatt sind die CS02, CS01, CS00 Bits beim Attiny2313 im TCCR0B 
Register. Das WGM01 Bit hingegen ist im TCCR0A Register. Du brauchst 
also mehrere Anweisungen statt einer Einzelanweisung im Tutorial. 
Desweiteren sind noch ein paar Anpassungen zu machen, die ich in 
http://www.mikrocontroller.net/articles/Pollin_Funk-AVR-Evaluationsboard#AVR-GCC-Tutorial.2FDie_Timer_und_Z.C3.A4hler_des_AVR 
beschrieben habe.

von avr (Gast)


Lesenswert?

Im Tutorial steht, dass man beim AT90S2313 das TCCR0 verwenden soll.

Weiter oben steht, dass man bei anderen AVR-Typen das Datenblatt
befragen soll.

Aber als kleine Hilfe:

http://www.atmel.com/dyn/resources/prod_documents/doc4298.pdf

avr

von Stefan B. (Gast)


Lesenswert?

BTW. meine gerade mit dem Beispiel gestartete Stoppuhr hinkt gegenüber 
einer Funkarmbanduhr hinterher. Dem Quarz am µC ist es anscheinend zu 
kalt. Fast 9 Sekunden auf 20 Minuten.

von AVR Beginner (Gast)


Lesenswert?

Ich vermute mal dass AT90S2313 veraltet ist? Kann nicht jemand das 
Tutorial überarbeiten?

Gruß

von STK500-Besitzer (Gast)


Lesenswert?

>Kann nicht jemand das Tutorial überarbeiten?

Ja, viel Spaß dabei!

von avr (Gast)


Lesenswert?

@Stefan B.

Du hast einen kleinen Denkfehler (den wohl jeder mal macht):

Der Timer zählt ab 0 !
Wenn er 125 Zählen soll sind das 0 bis 124, du must also
124 statt 125 in OCR0A schreiben damit es passt.

avr

von Stefan B. (Gast)


Lesenswert?

Dann ist das originale Beispiel an der Stelle falsch. Das habe ich nicht 
überprüft und auch nicht geändert.

Ich probiere das aber aus. Will ja an Silvester nicht Stunden später auf 
der Straße stehen und Keine ist mehr da zum Anstoßen mit Cremant...

von Stefan B. (Gast)


Lesenswert?

@ avr

Dein Hinweis war goldrichtig. Die Uhr ist jetzt genauer! Die beiden 
Artikel im Wiki habe ich korrigiert.

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.