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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren