www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik WinAVR sieht Phantomports


Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Bernd K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Speichern, nochmal probieren?!
Speichern, Anwendung neu starten, nochmal probieren?!

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er bleibt bei seiner Meinung!

Kann sowas auch im Makefile auftauchen?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Thomas Decker (t0mmy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmmmmmmmm. Noch keine Besserung in Sicht. Böser Compiler.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.c => C Source Code
.C => C++ Source Code

Autor: Stephan R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Perfect! Sauber!

Zwar tut das Display noch nicht das was es soll aber das Brennen 
funktioniert!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.