Forum: Compiler & IDEs Array ins EEprom speichern


von Marius (Gast)


Lesenswert?

ich hab ein Array das ich ins EEprom speichern möchte jedoch steht im 
EEprom nur mist drin.
Viellecht kann von euch jemand mir nen Tip geben was ich da Falsch mach
mfg
1
volatile uint8_t device_Adr = 0x20; 
2
int array[30];
3
4
5
// Byte aus dem EEPROM lesen
6
uint8_t EEPReadByte(uint16_t addr)
7
{
8
  return eeprom_read_byte((uint8_t *)addr);
9
}
10
 
11
// Byte in das EEPROM schreiben
12
void EEPWriteByte(uint16_t addr, uint8_t val)
13
{
14
  eeprom_write_byte((uint8_t *)addr, val);
15
}
16
17
void write(void )
18
{
19
   for(i=0; i<30; i++)
20
    {
21
      EEPWriteByte(array[i], device_Adr+i);
22
    }
23
}

von Stefan E. (sternst)


Lesenswert?

Marius schrieb:
1
 EEPWriteByte(array[i], device_Adr+i);
Argumente vertauscht?

von Walter S. (avatar)


Lesenswert?

array besteht aus int,
du schreibst aber bytes, das passt nicht gut zusammen

von Dominik S. (dasd)


Lesenswert?

Walter S. schrieb:
> array besteht aus int,
> du schreibst aber bytes, das passt nicht gut zusammen

Und int war wie groß noch gleich?

Ansonsten sagte es ja Stefan...
Funktionsaufruf passt nicht zu Funktion :)

> volatile uint8_t device_Adr = 0x20;

Achja... und warum ist die volatile?

von Freaks (Gast)


Lesenswert?


von Marius (Gast)


Lesenswert?

hallo,
vielen Dank füre eure mühe,
ich habe die Argumente vertauscht.
char array würde ja auch gehen oder bin ich da Falsch, hab noch nicht so 
viel Erfahrung  in C.
mfg

von Walter S. (avatar)


Lesenswert?

Dominik S. schrieb:
> Walter S. schrieb:
>> array besteht aus int,
>> du schreibst aber bytes, das passt nicht gut zusammen
>
> Und int war wie groß noch gleich?

das kannst du z.B. mit sizeof(int) rausfinden,
ist ja nicht ganz sicher was der TO für einen Compiler verwendet,
auf AVRs ist es normalerweise 2, sizeof(char) dagegen 1

von Walter S. (avatar)


Lesenswert?

Marius schrieb:
> char array würde ja auch gehen oder bin ich da Falsch, hab noch nicht so
> viel Erfahrung  in C.

kommt ganz drauf an ob deine Zahlenwerte in ein char rein passen

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.