AVR Atmega164PA mit AVR Studio 6 Timer/Counter Register Problem

OP #2908432
Lesenswert?
• ▲
▼
Hallo,

ich bin dabei einen AVR Atmega164PA mit dem neuen AVR Studio 6 in C zu 
programmieren.
Dieser µC hat laut Datenblatt (siehe 
http://www.atmel.com/Images/doc8272.pdf) 3 Timer/Counter (Bezeichnungen 
1-3).

Alles schön und gut, bis es an die Programmierung geht.

Ich würde gerne das Timer/Counter 3 Control Register A ansprechen und 
mit Werten füllen, laut Datenblatt müsste sich dieses über TCCR3A 
ansprechen lassen.

Leider erkennt das AVR Studio 6 dies nicht, dank der 
Autovervollständigung kann ich aber einsehen dass es die folgenden 
Register gibt:
TCCR0A, TCCR1A, TCCR2A.

Nun meine Frage, ob hierbei einfach bei Null angefangen wurde zu zählen, 
also 0 entspricht 1, 1 entspricht 2 und 2 entspricht 3, oder wie ich nun 
das richtige Register ansprechen kann?!?

Ich hoffe ich habe mein Anliegen einigermaßen verständlich beschrieben 
und hoffe auf eure Unterstützung.

Vielen Dank im voraus,

Marcel
Gast #2908439
Lesenswert?
• ▲
▼
Hi

>Nun meine Frage, ob hierbei einfach bei Null angefangen wurde zu zählen,
>also 0 entspricht 1, 1 entspricht 2 und 2 entspricht 3, oder wie ich nun
>das richtige Register ansprechen kann?!?

Ja. Es ist üblich bei Null anzufangen. Timer0, Timer1 und Timer2 sind 
insgesamt 3 Timer.

Außerdem gibt es ein Datenblatt, das ich dir dringend empfehle zu lesen. 
Sonst wird das nichts mit dem Programmieren.

MfG Spess
OP #2908444
Lesenswert?
• ▲
▼
Hey Spess,

danke für die Antwort, aber ich lese ja das Datenblatt!
Dort heißen die Timer aber 1,2 und 3.

Auszüge aus dem Datenblatt:

"16. 16-bit Timer/Counter1 and *Timer/Counter3* with PWM"

"Most register and bit references in this section are written in general 
form. A lower case “n” replaces *the Timer/Counter number*, and a lower 
case “x” replaces the Output Compare unit channel."

Also müsste nach meinem Verständnis aus "TCCRnA – Timer/Counter n 
Control Register A" --> TCCR3A werden!

Aber korrigiert mich, wenn ich falsch liege!


Beste Grüße,
Marcel
#2908713
Lesenswert?
• ▲
▼
Marcel K. schrieb:
> Hab nur nicht gewusst das der Atmega16 den dritten  bzw. vierten nicht
> hat.
Das ist aber auch äusserst sparsam dokumentiert.

>> – One/two 16-bit Timer/Counter with Separate Prescaler,
In der Beschreibung des Timers steht nichts dazu drin.

Bei den Interruptvektoren steht, daß es die 3er-Vektoren nur für den 
1284p gibt.
>> 3. Applies only to Atmel ATmega1284P.
Danach hat der 1284 den Timer3 auch nicht.

mfg.
Gast #2908789
Lesenswert?
• ▲
▼
Hi

>Und warum steht das im Datenblatt anders drin?

Weis ich nicht. Für den ATMega1284 gab es mal ein separates Datenblatt. 
Mit 4 Timern. Bei der Zusammenführung der ATMega164/324/644 und 1284 in 
ein Datenblatt war der 4.Timer des ATMega1284 plötzlich weg. Kam erst in 
einer späteren Revision wieder zum Vorschein. Wahrscheinlich ist das 
ganze immer noch nicht konsequent durchgezogen.

In der Parametric Tabelle auf ATMEL-Webseite stehen sogar beide 1284 nur 
mit 3 Timern drin.

In solchen Fällen sehe ich mir die Partdescription Files vom AVR-Studio 
an. Die haben bisher immer gestimmt.

MfG Spess

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.