Forum: Mikrocontroller und Digitale Elektronik Probleme mit Tabelle


von Siegfried S. (dieleena)


Lesenswert?

Hallo guten morgen,

bekomme folgende Fehlermeldung "113:Error [1129] [] operator requires a 
pointer and an integer as operands"

um übersichtliche Programmierung zu erhalten, habe ich "Tab_02[2][5]" in 
eine eigne *.c Datei angelegt.
Tabelle.c
rom unsigned int Tab_02[2][5] = \
{   { 1,2,3,4,5} ,      \
    { 11,22,33,44,55}   \
};


Ablauf.c
unsigned int Index;
extern rom unsigned int Tab_02[];

void Arbeit(void)
{
Index = Tab_02[0][3];
}


Gruß Siegfried

von NurEinGast (Gast)


Lesenswert?

Tabelle.c       Ablauf.c


Tab_02[][]      Tab_02[]

von automotive (Gast)


Lesenswert?

wie wäre es mit?

Ablauf.c
1
unsigned int Index;
2
extern rom unsigned int Tab_02[][];

MFG

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
"extern rom unsigned int Tab_02[][];" habe ich auch probiert,
aber
77:Error: syntax error

Gruß Siegfried

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
habe es gefunden.

nicht so
extern rom unsigned int Tab_02[][];

sondern so
extern rom unsigned int Tab_02[2][5];

Gruß Siegfried

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
Habe ein weiteres Problem mit Tabellen Zugriff. Einspaltige Tabelle ist 
im Program Memory angelegt.

*.h
#define MaxTabLogic 256
Prozess unsigned int   GetTabLogic;
Prozess unsigned int   *ZeigerTabLogic;

*.c
rom unsigned int TabLogic[MaxTabLogic] =
{
285,    //  -->>  Taster_Y
..
537,    //  -->>  Taster_X
}

*.c
extern rom unsigned int TabLogic[MaxTabLogic];

ZeigerTabLogic = (unsigned int*)(void*)&TabLogic[0];
GetTabLogic = *ZeigerTabLogic;

Die Variable wird nur mit dem Wert 0000 geladen, obwohl 285 an der 
Stelle im Array steht.
Über Offsetwert funktioniert es.
GetTabLogic = TabLogic[0];

Was mache ich schon wieder falsch?


Gruß Siegfried

von Thomas P. (pototschnig)


Lesenswert?

Was macht dieses "rom" überhaupt?

Werden die Konstanten dann im flash abgelegt? Dann musst du mit LPM 
drauf zugreifen (ist das ein AVR?) und normale Zeigeroperationen gehen 
meines Wissens nicht, da Harvard-Architektur ...

Bitte um Aufklärung, falls sich da in der letzten Zeit was geändert hat 
:-)

MfG
Thomas Pototschnig

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
PIC,

" Was macht dieses "rom" überhaupt? "
-> Tabelle ist im Program Memory (Flash Programmspeicher) angelegt <-

Gruß Siegfried

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
Noch kein Account? Hier anmelden.