PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kennt winavr kein TCCR0A?



Christoph2
30.03.2009, 18:08
Hallo!

Ich will bei einem mega32 den Timer0 verwenden und wenn er überläuft, soll ein Interrupt ausgelöst werden.

Dazu konfiguriere ich den Timer 0 so:



#include <avr/io.h>
#include <stdlib.h>
#include <util/delay.h>
#include <stdint.h>
#include <avr/interrupt.h>

void timer0_init()
{
TCCR0A|=0b00000000; // Normaler Timer, KEIN PWM
TCCR0B|=0b00000010; // Prescaler auf 8, d.h. alle 0,8us 1x erhöhen
TIMSK0|=0b00000001; // Interrupt beim Timer overflow enable

}


Der compiler schreibt folgende errors:

../timer0_init.c: In function 'timer0_init':
../timer0_init.c:21: error: 'TCCR0A' undeclared (first use in this function)
../timer0_init.c:21: error: (Each undeclared identifier is reported only once
../timer0_init.c:21: error: for each function it appears in.)
../timer0_init.c:22: error: 'TCCR0B' undeclared (first use in this function)
../timer0_init.c:23: error: 'TIMSK0' undeclared (first use in this function)


Ich habe mir daraufhin das neueste Datenblatt (März 2009) von Atmel heruntergeladen, und darin steht dass die register TCCR0A, TCCR0B und TIMSK0 heißen.
Meine winavr Version ist auch ganz neu, ich hab sie vor ner woche runtergeladen.

Brauche ich irgendwelche speziellen includefiles? ich hab jetzt einfach mal alles inkludiert weil es nicht funktioniert...

Woran kann das liegen dass der compiler so herumzickt?

lg Christoph

McJenso
30.03.2009, 18:52
Hallo,



Ich habe mir daraufhin das neueste Datenblatt (März 2009) von Atmel heruntergeladen, und darin steht dass die register TCCR0A, TCCR0B und TIMSK0 heißen.


Sollte mich wundern. Schau doch noch einmal nach und schreib sonst mal die Seite`, auf der du das gefunden hast.

Gruß

Jens

Christoph2
30.03.2009, 19:19
ab seite 101

Wie würden die register sonst heißen?

lg Christoph

Hubert.G
30.03.2009, 19:37
In meinem Datenblatt ab Seite 78 TCCR0, TIMSK

Besserwessi
30.03.2009, 19:45
Sieht fast so aus als wird hier Mega32 und Mega324 gemischt. Die Chips sind zwar ziehmlich ähnlich, aber Atmel hat beim Mega324 die neuere Art der Registerbezeichungen gewählt.

oberallgeier
30.03.2009, 20:58
Sieht fast so aus als wird hier Mega32 und Mega324 gemischt ...Muss wohl so sein. Denn ich programmiere seit Monaten mit WinAVR/AVRStudio den mega168....

... Kennt winavr kein TCCR0A? ...und der hat GENAU diese Registernamen (vgl. Atmel-Doc 2545M–AVR–09/07). Hingegen - mein Atmel-Doc 8155A–AVR–06/08 für den M32 - kennt diese Register nicht.

thewulf00
31.03.2009, 10:39
Zusammenfassung:
Christoph, Du hast das falsche Datenblatt. Der Mega32 hat nicht genug Timer, um das TCCRA Register in 'A' und 'B' teilen zu müssen!