Forum: Mikrocontroller und Digitale Elektronik Timer2 auf Atmega - TCCR2 could not be resolved


von H. F. (hafisch)


Lesenswert?

Hallo zusammen

Bei meinem neusten Projekt verwende ich einen Atmega8535 von welchem ich 
zum einen den Timer1 zur Generierung eines PWM-Signals um auf einem 
Buzzer eine Melodie zu spielen. Mit dem Timer2 möchte ich den Takt der 
Melodie generieren.

Der Timer1 funktioniert einwandfrei, beim Kompilieren des Timer2 jedoch 
bekomme ich jeweils folgende Meldungen.
1
Symbol 'TCCR2' could not be resolved
2
Symbol 'TCNT2' could not be resolved
3
Symbol 'TOIE2' could not be resolved

In den Eclipse-Projekteinstellungen ist der korrekte Atmega8535 
angewählt.

folgende includes habe ich eingestellt
1
// system libraries
2
#include <avr/io.h>
3
#include <avr/interrupt.h>
4
5
// project headers
6
#include "headNotes.h"

so sieht die Initialisierung des Timers aus:
1
// Timer0
2
TCCR0 |= (1<<CS00) | (1<<CS01) | (1<<CS02);        // prescaler 1024
3
// Timer2
4
TCCR2 |= (1<<CS00) | (1<<CS01) | (1<<CS02);        // prescaler 1024
5
// global timer data
6
TIMSK  |= (1<<TOIE0) | (1<<TOIE2);                // Overflow Interrupt einschalten
7
sei();                                            // interrupts einschalten

Muss zur Verwendung des Timer2 ein zusätzliches File referenziert 
werden?

Was kann sonst noch falsch eingestellt werden, so dass der Timer2 nicht 
kompiliert werden kann?

Danke für die Hilfe
hafisch

von Timmo H. (masterfx)


Lesenswert?

Also in der iom8535.h sind auf jeden Fall die Register drin. Bist du dir 
sicher, dass du beim Kompilieren auch den richtigen AVR µC angegeben 
hast?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

H. Fisch schrieb:
> // Timer2
> TCCR2 |= (1<<CS00) | (1<<CS01) | (1<<CS02);        // prescaler 1024

 Vielleicht so:
 TCCR2 |= (1<<CS20) | (1<<CS21) | (1<<CS22;
 Ist zwar dasselbe, aber vielleicht doch nicht für deinen Compiler...

: Bearbeitet durch User
von H. F. (hafisch)


Lesenswert?

Hallo Timmo

Das wars! Habe die iom8535.h inkludiert und so läufts.
Allerdings weiss ich nicht wie ich ohne Forum zu dieser Information 
gekommen wäre. Habe im System die erfolglos die verfügbaren h-Files 
gesucht.
Gibt es irgendwo eine Übersicht über die verfügbaren includes?

Danke viel mal für die Hilfe und einen schönen Abend wünscht
hafisch

von holger (Gast)


Lesenswert?

>Das wars! Habe die iom8535.h inkludiert und so läufts.

Das musst du aber nicht. #include <avr/io.h> reicht.
In deinen Compiler/Project Settings hast du deinen Controller
nicht richtig eingestellt.

von Timmo H. (masterfx)


Lesenswert?

mmcu=atmega8535

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.