Tach! Ich versuche ein myAVR- Board mit Atmega8 und myAVR- Display per C zu steuern. Ein fremdes Template habe ich meinen Atmega entsprechend angepasst, d.h. die darin angegebenen Ports verändert. So habe ich z.B. das im Ursprungscode enthaltene PortE rausgeschmissen und in PortD verwandelt. Nun möchte ich kompilieren und erhalte die Fehlermeldung LCD_DRV.C:8: error: 'PORTE' was not declared in this scope obwohl nirgendwo im gesamten Code der Begriff PORTE vorkommt! Wo kann diese Angabe noch stecken?
Speichern, nochmal probieren?! Speichern, Anwendung neu starten, nochmal probieren?!
> Kann sowas auch im Makefile auftauchen?
Latürnich. Einfach mal nachsehen. Wenn gar nichts mehr hilft: Alle(!
..nicht nur den Quellcode) Dateien nach 'PORTE' durchsuchen.
Ich hatte das vor kurzem auch mal. Ein make clean hat nichts gebracht. Geholfen hat bei mir das Ändern irgendeiner Stelle (Kommentar oder so) und erneute abspeichern. Neustart von AVRStudio hab ich nicht ausprobiert. Vielleicht hilfts ja...
Hast du das ursprüngliche WinAVR-Projekt übernommen? Ich würde * neues WinAVR Projekt im AVR Studio anfangen. Damit ist erst mal sicher gestellt, dass überall dein Mega8 eingetragen ist und alle sonstigen Dinge auf Default sind. * Dann den Code aus dem anderen Projekt per Cut & Paste übernehmen. Zuerst einfach nur das File, in dem die main() drinnen ist. Da werden dann andere Files fehlen. Die legst du neu an, fügst sie im AVR-Studio zum Projekt hinzu. Dann machst du sie im AVR-Studio auf und kopierst den Code aus den jeweiligen Originalfiles per Cut&Paste in die neuen um. AUf die Art ist sicher gestellt, dass du im Prpjekt genau die Files enthalten hast, auf genau den Verzeichnissen und mit genau dem Inhalt den du unter Kontrolle hast und den du kennst. Du kannst natürlich weiter suchen, welches deiner Files in deinem Projekt nicht dasjenige von deinem Projektverzeichnis ist. Aber manchmal gehts es einfach schneller, wenn man akzeptiert, dass im Projekt irgendwas nicht stimmt und man neu anfängt. Mit der vorgeschlagenen Vorgehensweise hast du in 10 Minuten das neue Projekt fertig aufgesetzt und einen fehlerfrei compilierbaren Code. PS: Das Vorgehen ist im Grunde unabhängig von der tatsächlichen IDE, wie AVR-Studio. Manchmal ist es schneller und in Summe weniger Arbeit, wenn man den vermeintlich aufwändigeren Weg wählt.
Guter Tipp, hat geklappt, der Fehler ist behoben! Danke! Aber irgendwie verhält sich das Programm komisch: Bereits zweimal hat sich eine eingebundene C-Datei einfach aus dem Staub gemacht (war plötzlich auch aus dem Projektordner verschwunden, und ausserdem bekomme ich beim Compilieren nun folgende Fehlermeldung, mit der ich rein gaa nix anfangen kann: Linking: main.elf avr-gcc -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=3686400UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o LCD_DRV.C lcd_drv.h --output main.elf -Wl,-Map=main.map,--cref -lm cc1plus.exe: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++ cc1plus.exe: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++ d:/avr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe:main.o: file format not recognized; treating as linker script d:/avr/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe:main.o:1: syntax error make.exe: *** [main.elf] Error 1
Perfect! Sauber! Zwar tut das Display noch nicht das was es soll aber das Brennen funktioniert!
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.