mikrocontroller.net

Forum: Compiler & IDEs EEMEM und Strukturen


Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich habe ein kleines Problem mit EEMEM und strukturen ich dort ablegen 
will.

Header-Datei mit der Definition
#ifndef COLORDEFINITION_H
#define COLORDEFINITION_H

typedef struct _colorstruc 
         {
          unsigned char H;
          unsigned char S;
          unsigned char V;
          unsigned char Speed;
          unsigned char R;
          unsigned char G;
          unsigned char B;
         } colorstruc;

typedef struct _colorproc
         {
          unsigned char prog;
          colorstruc colorstruc[10];
         } colorproc;

#endif

c-Datei
EEMEM colorproc colortable[10] =
  {
    {1, { 0x00, 0x00, 0x00, 0x00, 0, 1, 2 } }
  };

Als Fehlermeldung erhalte ich

../colordefinition.c:3: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'colorproc'

Ich habe schon einiges recherchiert, komme aber nicht weiter.

Wäre für jeden Tip dankbar.

Gruß
Frank

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
colorstruc & colortable haben die Größe 10. Du Initialisierst aber 
jeweils nur ein Feld.

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,
ich habe nur einen Auszug gepostet. Der Fehler liegt nicht daran, es 
muss irgend etwas mit der Definition sein.

Gruß
Frank

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal ein korrekter Auszug:
#ifndef COLORDEFINITION_H
#define COLORDEFINITION_H

typedef struct _colorstruc 
         {
          unsigned char H;
          unsigned char S;
          unsigned char V;
          unsigned char Speed;
          unsigned char R;
          unsigned char G;
          unsigned char B;
         } colorstruc;

typedef struct _colorproc
         {
          unsigned char prog;
          colorstruc colorstruc[2];
             } colorproc;

#endif
#include "colordefinition.h"

colorproc colortable[1] =
  {
    { 1, { { 0x00, 0x00, 0x00, 0x00, 0, 1, 2 },
           { 0x00, 0x00, 0x00, 0x00, 3, 4, 5 } } }
  };

Gruß
Frank

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann kennt der Compiler evtl. 'EEMEM' nicht?

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,
das war's, include Datei vergessen...

Wie war das mit dem Wald und den Bäumen?

Gruß
Frank

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr schön.
Ich kenne das, manchmal ist es sehr dunkel im Wald ;-)

Autor: Gratis Tip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> colorstruc colorstruc

Ich würd für den Type- und den Variablen-Name verscheiden Bezeichner 
wählen. Ist sicher einfacher zu lesen. Bzw. gewisse Editoren werden mit 
dem Syntax-Highlighting Probleme bekommen.

Autor: wagneth (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hier Compiliert bei mir ohne Fehlermeldung
#include <avr/eeprom.h>

typedef struct _colorstruc 
         {
          unsigned char H;
          unsigned char S;
          unsigned char V;
          unsigned char Speed;
          unsigned char R;
          unsigned char G;
          unsigned char B;
         } colorstruc;

typedef struct _colorproc
         {
          unsigned char prog;
          colorstruc colorstruc[2];
             } colorproc;


EEMEM colorproc colortable[1] =
  {
    { 1, { { 0x00, 0x00, 0x00, 0x00, 0, 1, 2 },
           { 0x00, 0x00, 0x00, 0x00, 3, 4, 5 } } }
  };

int main ()
{

  return 0;
}

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.