www.mikrocontroller.net

Forum: Compiler & IDEs octopus_eeprom_write_bytes / octopus_eeprom_read_bytes


Autor: Hans-Ruedi Pfändler (hpfandler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

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.