Hallo, ich habe folgende Frage: Ich habe mehrere array´s im EEPROM gespeichert. Das auslesen über "eeprom_read_block();" funktioniert auch ohne probleme. Jetzt soll über ein kleines Menü ein array ausgelesen und verarbeitet werden. Dazu wollte ich folgende Funktion verwenden: const char EEMEM test1[] ={1, 2, 3}; const char EEMEM test2[] ={10, 20, 30, 40}; void funktion (const char array) { char dummy[8]; eeprom_read_block(dummy, array, sizeof(array)); .... .... } Wenn ich diese Funktion dann aber in main mit "funktion(testX);" aufrufe wird immer nur der erste Wert des jeweiligen array´s ausgelesen. Da die array´s aber unterschiedlich lang sind kann ich ja keinen festen Wert anstelle von "sizeof()" schreiben. Da ich aber in C noch recht neu bin weiß ich gerade nicht weiter und bräuchte wenigstens einen kleinen "denkanstoß". Ich sag schon mal Danke im voraus!!!
sizeof(const char array) ist nun mal 1. Erweiter den Funktionsaufruf um einen Parameter: void funktion (const char array, unsigned char len) { char dummy[8]; eeprom_read_block(dummy, array, len); .... .... } funktion(testX, sizeof(testX)); Weiss jetzt aber nicht ob sizeof mit EEMEM Arrays arbeitet.
High, es funktioniert einwandfrei, nochmals vielen Dank für die schnelle Hilfe. Tschau
holger wrote: > void funktion (const char array, unsigned char len) > { > char dummy[8]; > eeprom_read_block(dummy, array, len); > .... > .... > } So wird noch kein Schuh draus, musst schon "const char *array" schreiben. Oder besser "const char array[]".
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.