Hallo Leute Ich versuche ein programm mit den beiden Funktionen der octopus lib octopus_eeprom_write_bytes / octopus_eeprom_read_bytes zum laufen zu bringen. Dazu verwende ich den folgenden code teil (OctopusCAN / AT90CAN128): Unter LINUX als Dev-System (Eclipse/gcc mit make). Extrakt gemäss den Beispielen aus Zweig 'test'. Beispiel auf minimum reduziert. a) Initialisieren des Datenblockes ---------------------------------- for(i = 0; i < 4096; i++) { buffer[i] = 0; } for(i = 0; i < 256; i++) { buffer[(i*16)] = (char)i; } printf ("*** dump EEPROM (wr) data content\n"); hex_dump(&buffer[0x0000], 4096); *** Die kontrolle zeigt dass jeweils die erste Zelle eines jeden 16-er blocks den entsprechenden Wert beinhaltet. b) transfer des gesamten Datenblockes in das EEPROM --------------------------------------------------- // write SINGLE byte for (i = 0; i < 256; i++) { adrcntr = (i*16); if (octopus_eeprom_write_bytes(&octopus, adrcntr, buffer, 1) != 1) { printf ("*** error in writing EEPROM\n"); } } *** Geht durch ohne Fehlermeldung c) Erneutes Auslesen und Kontrolle ---------------------------------- // clear buffer for(i = 0; i < buflen; i++) { buffer[i] = fillbyte; } // read SINGLE bytewyse from octopus for (i = 0; i < 256; i++) { adrcntr = 0x0000 + (i * 16); for (j = 0; j < 16; j++) { octopus_eeprom_read_bytes(&octopus, (adrcntr + j), buffer, 1); } } printf ("*** dump EEPROM (rd) data content\n"); hex_dump(&buffer[0x0000], 4096); *** Die Kontrolle des Hexdumps zeigt, dass nur die letzten 256 bytes repetitiv über den ganzen Speicherbereich gelesen werden. d.h. anscheinend werden nur die 256 bytes verwendet und der rest wurde ignoriert, überschrieben oder schlicht vergessen. Kann mir vielleicht jemand einen Tip geben ? Danke und Gruss Hans-Ruedi
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.