Forum: Mikrocontroller und Digitale Elektronik AVR Studio kennt Registernamen vom uC nicht


von Hans W. (hans_wurst)


Lesenswert?

Hallo,

ich verwende das AVR Studio um meinen ATmega3290P zu programmieren. 
Bisher hat er meine Register, die ich beschrieben habe erkannt. Nun 
jedoch möchte ich auf das Register TCCR0B zugreifen und bekomme folgende 
Fehlermeldung:
error: 'TCCR0B' undeclared (first use in this function)

Nun frage ich mich warum er sie nicht kennt, obwohl ich diesen Namen 
(wie alle anderen) aus dem Datenblatt kopiert habe. Muss ich dem AVR 
Studio etwa erst eine IO-Bibliothek bekannt geben? Wenn ja, dann 
verstehe ich allerdings nicht, warum mein Programm bisher reibungslos 
lief.

Habe bisher nur diese hier gebraucht:
#include <string.h>
#include <inttypes.h>

Danke schon mal für eure Tipps.

von Stefan S. (energizer)


Lesenswert?

1
#include <avr/io.h>

sollte auch dabei sein.

Stefan

von Hans W. (hans_wurst)


Lesenswert?

Danke dir Stefan.

In der IO.h steht unter anderem dieser Eintrag:
1
#elif defined (__AVR_ATmega3290P__)
2
#  include <avr/iom3290.h>
Muss ich jetzt noch irgendwie bekannt geben welchen uC ich habe? (z.B. 
so: #define _AVR_ATmega3290P_) Oder erkennt er das selber wenn ich den 
uC zum flashen verbinde?

Meine Fehlermeldungen habe ich leider immer noch.

von STK500-Besitzer (Gast)


Lesenswert?

>Muss ich jetzt noch irgendwie bekannt geben welchen uC ich habe? (z.B.
>so: #define AVR_ATmega3290P) Oder erkennt er das selber wenn ich den
>uC zum flashen verbinde?

Der Controller-Typ wird im Makefile angegeben.
Beim AVRStudio sollte das automatisch passieren, wenn man bei den 
Projekteinstellungen den richten Controller auswählt.

von Hans W. (hans_wurst)


Lesenswert?

Ich habe mal nachgeschaut. Habe aber ganz sicher den richtigen uC 
ausgewählt.

Hat jemand eine Idee warum das AVR Studio dann trotzdem mein Register 
(Register  TCCR0B) nicht kennt?

von holger (Gast)


Lesenswert?

>Hat jemand eine Idee warum das AVR Studio dann trotzdem mein Register
>(Register  TCCR0B) nicht kennt?

Weil es in der Header Datei nicht existiert.
Heisst vieleicht nur anders. Das kommt oft
vor weil Atmel die Registernamen dauernd ändert.
Wenn man ein Programm von einem anderen uC nimmt
muss man das häufig anpassen.

Da hilft nur ein Blick ins Datenblatt.

von Hubert G. (hubertg)


Lesenswert?

Der Blick ins Datenblatt sagt das es kein TCCR0B gibt.

von Hans W. (hans_wurst)


Lesenswert?

Oh jeh....  ich habe zwei verschiedene Atmels auf meinem Board und habe 
die ganze Zeit im falschen Datenblatt umhergeirrt. :(
Danke für den Hinweis Hubert.

von Rudolph R. (rudolph)


Lesenswert?

Oh ja, ich hätte auch gerne mal einen Mega1284P, dafür ein Raven zu 
kaufen ist mir dann doch aber ein wenig zu heftig. :-)

Obwohl es die Raven bei Reichelt ja inzwischen sogar einzeln gibt.

von Hans W. (hans_wurst)


Lesenswert?

Hallo Rudolph,

ein sehr aufmerksamer Leser ;)
Ja die Raven sind eine sehr feine Sache. Es ist zwar ein wenig aufwändig 
bis man sich mal eingearbeitet hat, aber wenn man die Funkschnittstelle 
eh schon nutzen möchte kann ich sie nur empfehlen. Die fertigen 
Funktionen nehmen einem sehr viel Arbeit ab.

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.