- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 6 von 6

Thema: AtmelStudio 7.0.634 - Probleme mit typedef

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Geier,
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Die Fehlermeldungen sind mir rätselhaft.
    Wie schon geschrieben wurde:
    C erlaubt erst ab C99 die Variablen deklaration in der Initializer list.

    Aber der Compiler scheint u8, int16_t und uint16_t nicht zu kennen, was auf eine vergessene mydefs.h schliessen lässt.

    Allerdings gibt es noch gemeine Fehler, welche sich in einer Headerdatei verstecken können.
    z.B. kann ein vergessenes ';' oder ',' dazu führen, dass weitere Headerdateien irgendeinem Macro oder so zugeschlagen werden.
    Eine Fehlermeldung taucht dann erst viel später auf

    Grundsätzlich kann man z.B. ein Macro auf mehrer Headerdateien verteilen.
    Der Preprocessor fügt bei einem #include wird einfach die angegebene Datei eingefügt.
    #defines werden dann wie "suchen und Ersetzen" bei einem Texteditor aufgelöst.


    Und in C darf man nur den ersten Fehler beachten!
    Der Rest sind meistens Folgefehler weil der Parser aus den Trott kommt.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    Danke Wsk8, danke Peter für die Antworten, insbes. den Hinweis auf C99. Dazu musste ich ja im Studio4 seinerzeit schon ne entsprechende Einstellung erledigen in den Custom Compilation Options. Dort steht nun im linken Fenster in Projekt-Options
    [All files]
    SERVObabyo_1.c
    [Linker Options]

    Im rechten Fenster in Projekt-Options steht
    -Wall
    -gdwarf-2
    -std=gnu99
    -Os
    -funsigned-char
    -funsigned-bitfields
    -fpack-struct
    -fshort-enums

    Möglicherweise gibts ähnliche Einstellungen im Studio 7 - dazu muss ich mich aber dort erst Mal besser zurechtfinden - noch habe ich keine entsprechende Einstellmöglichkeit gefunden.

    Verschiedene Header wie stdint.h hatte ich eingebunden (mal alle, mal den einen oder andern weggelassen) und natürlich die mydefs.h. Letztere "irgendwo" in einer Subdirektory - für "alle" Projekte zugreifbar - die ich entsprechend referenziert hatte. In meiner Verzweiflung hatte ich testweise die mydefs.h. auch als Datei im Projektorder liegen - mit entsprechendem "datei.h"-Include statt <datei.h>-Include. Selbst die Änderung der includierten mydefs.h mit "//" Kommentaren stets in einer gesonderten Zeile brachte keine Besserung. Lief alles ein bisschen nach der Art experimentelle Softwareentwicklung.

    Ich mach mich also auf die Suche nach der Stelle zum Einschalten der std=gnu99-Option.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    So, ich hab Einstellmöglichkeiten für das Projekt gefunden in Werkzeugleiste "Project", Zeile "S-bbo_1a Propertiees...ALT-F7". Das führt zum File, C:\tools\..\S-bbo_1a\S-bbo_1a.cproj. Darin gibt es Einstellmöglichkeiten, z.B. [AVR/GNU C Compiler]. Darin gibts das Fenster "All Options" - in dem das Folgende gelistet ist (ohne Zeilenvorschub, den habe ich darunter der besseren Lesbarkeit hinzugefügt:

    Das Orignal:
    Code:
    -x c -funsigned-char -funsigned-bitfields -DDEBUG  -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -I"../../../../CLib_01"  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"
    ... in besserer Lesbarkeit
    Code:
    -x 
    c 
    -funsigned-char 
    -funsigned-bitfields 
    -DDEBUG  
    -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" 
    -I"../../../../CLib_01"  
    -O1 -ffunction-sections 
    -fdata-sections -fpack-struct -fshort-enums 
    -g2 
    -Wall 
    -mmcu=atmega328p 
    -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega328p" 
    -c 
    -std=gnu99 
    -MD -MP 
    -MF "$(@:%.o=%.d)" 
    -MT"$(@:%.o=%.d)" 
    -MT"$(@:%.o=%.o)"
    Fazit: Der Schalter gnu99 steht auf "ein" - mir erscheint alles richtig. Trotzdem kommen immer noch die oben vorgestellten Fehlermeldungen.

    Weiß bitte jemand wo vielleicht doch der Fehler stecken kann ?
    Geändert von oberallgeier (20.02.2016 um 17:18 Uhr) Grund: Schreibfehler
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    Lösche mal den Tippfehler mit "u8" raus, wahrscheinlich kommt der Compiler über diese Stelle gar nicht drüber.
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

Ähnliche Themen

  1. Atmega32u4 Timer 3 Probleme; PWM Probleme
    Von Mons im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 01.03.2014, 10:47
  2. Problem mit typedef struct
    Von flo1 im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 11.11.2009, 14:09
  3. Typedef-Problem (Expected Declaration Specifiers etc...)
    Von Jaecko im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 24.08.2008, 17:29
  4. Typedef
    Von Arexx-Henk im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 13.02.2006, 09:42
  5. Frage uber 'typedef enum'
    Von Arexx-Henk im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 01.03.2005, 10:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests