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
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
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
Marcel K. schrieb: > 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. Das Register gibt es tatsächlich. Steht auch im Datenblatt. Nur ist dieser 4. Timer dem Atmega1284 vorbehalten. Die 3 kleineren Geschwister haben den nicht. mfg.
Hi >danke für die Antwort, aber ich lese ja das Datenblatt! >Dort heißen die Timer aber 1,2 und 3. >"16. 16-bit Timer/Counter1 and *Timer/Counter3* with PWM" Was für ein Datenblatt benutzt du denn? http://www.atmel.com/Images/doc8272.pdf Da gibt es nur Timer 0,1,2. MfG Spess
Thomas Eckmann schrieb: > Das Register gibt es tatsächlich. Steht auch im Datenblatt. Nur ist > dieser 4. Timer dem Atmega1284 vorbehalten. Die 3 kleineren Geschwister > haben den nicht. Danke Thomas, hilfreiche Antwort! Besten Dank, Marcel
Spess53 schrieb: > Was für ein Datenblatt benutzt du denn? > > http://www.atmel.com/Images/doc8272.pdf > > Da gibt es nur Timer 0,1,2. Nein, es gibt dort 0-3. 1 und 3 sind in einem Kapitel (16) zusammengefasst.
Spess53 schrieb: > Was für ein Datenblatt benutzt du denn? > > http://www.atmel.com/Images/doc8272.pdf > > Da gibt es nur Timer 0,1,2. Ja den Timer 0 muss ich wohl übersehen haben, hatte mich zu Stark auf die 16bitter 1 und 3 fixiert. Hab nur nicht gewusst das der Atmega16 den dritten bzw. vierten nicht hat. Trotzdem danke - problem geklärt ;)
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.
Hi
>Danach hat der 1284 den Timer3 auch nicht.
Hat er aber.
MfG Spess
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
spess53 schrieb: > 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. Da sollte man dem Projektleiter und dem QMB wohl mal die Ohren lang ziehen. mfg.
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.