Hallo, ich bin gerade dabei auf das Atmel Studio 6.1 umzusteigen. Zuvor hatte ich das AVR Studio 4.19 benutzt und mich lange dagegen gesträubt das 6er zu verwenden. Meine Gründe waren vor allem die Größe und Bedienbarkeit jedoch auf Grund neuer Devices und Tools (evtl mal mit QTouch experimentieren) wollte ich jetzt doch umsteigen. Leider klappt schon die erste Compilierung nicht. Problem: In der Haupt-C-Datei erfolgen die #includes z.B. #include <avr/io.h> sowie auf die eigene #include "uart.c". Wird das Projekt compiliert kommt als Fehlermeldung in uart.c: "'UBRRH' undeclared". Die gleiche Fehlermeldung wird auch für alle anderen Register und Ports in uart.c geliefert. Es kann doch nicht sein, dass die includes in allen c-files des Projekts erneut angegeben werden müssen. Die uart.c wurde im Solution Explorer des Atmel Studios hinzugefügt. Im Internet hat sich leider nichts vernünftiges gefunden und bem AVR Studio 4.x hat es immer in dieser Weise funktioniert weshalb ich nciht weiß ob evtl irgendwo in den Einstellungen noch ein Häckchen gesetzt werden muss... Ich hoffe es kann jemand helfen! Vielen Dank!
Florian schrieb: > In der Haupt-C-Datei erfolgen die #includes z.B. #include <avr/io.h> > sowie auf die eigene #include "uart.c". Wieso inkludierst Du C-Dateien? Sehr schlechte Praktik - zumal diese Florian schrieb: > uart.c [...) im Solution Explorer des Atmel Studios hinzugefügt wurde. Damit wird einmal der Inhalt dieser C-Datei in Deine "Haupt-C-Datei" eingefügt und dann compiliert, zum Anderen die uart.c noch einmal separat compiliert - das ist mit Sicherheit nicht das gewünschte Verhalten. Florian schrieb: > Es kann doch nicht sein, dass die includes in allen c-files des Projekts > erneut angegeben werden müssen. Doch; genau so funktioniert das. Regel: - Jede C-Datei wird separat compiliert; damit "sieht" der Compiler nur das, was innerhalb dieser Datei (bzw. der darin inkludierten Header) definiert wurde - nicht mehr und nicht weniger (Ausnahme sind z. B. Defines, welche man dem Compiter via Kommandozeilenparameter mitgibt). - Inkludiert werden nur H-Dateien; diese enthalten globale (d. h. in mehreren C-Dateien verwendete) Definitionen bzw. die "öffentliche Schnittstelle" der zugehörigen C-Datei.
Hallo Patrik! Danke für die Antwort! Da es im AVR Studio 4.x immer so ohne Probleme funktioniert hat hatte ich mir darüber nie Gedanken gemacht. Das Atmel Studio scheint das wohl anders zu behandeln. Da werde ich wohl meine Arbeitsweise etwas umstellen müssen. ;-) Werden die Dateien aus dem Solution explorer gelöscht compiliert das Projekt jedenfalls schon einmal (ohne Fehlermeldung). Auf jeden Fall sehr gewöhnungsbedürftig das "neue" AVR Studio...
Florian schrieb: > Auf jeden Fall sehr gewöhnungsbedürftig das "neue" AVR Studio... Das gibt sich. Bis auf den Fuse-Editor vermißt man nach einer Woche nichts mehr aus dem alten AVR-Studio. Dafür sind Syntax-Highlightig und Auto-Vervollständigen einfach so viel besser geworden. Wenn Du nur AVRs machen willst und Du die Atmel-Studio-Installation für zu riesig hälst, lösche die folgenden Ordner: [...]/Atmel/Atmel Toolchain/AVR32 GCC [...]/Atmel/Atmel Toolchain/ARM GCC [...]/Atmel/Atmel Studio Extension/AVR32 GCC [...]/Atmel/Atmel Studio Extension/ARM GCC dann ist das Werkzeug sogar kleiner als eine nackte Visual-C-Installation.
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.