mikrocontroller.net

Forum: Compiler & IDEs Mega88 und internes EEPROM lesen und schreiben


Autor: Slowflyer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, hab mal wieder ein Problem.

Ich versuche laut Datenblatt von Atmel (mit den c-Codes von Atmel,
siehe Anhang) das interne EEPROM zu beschreiben. Ich schreibe mit den
folgenden Zeilen etwas rein:
EEPROM_write(100, 'A');
EEPROM_write(101, 'B');
EEPROM_write(102, 'C');
EEPROM_write(103, 'D');

lese ich nun das EEPROM mit dem AVR-Studio wieder aus, so stehen da nur
lauter FF drin. Warum? Was habe ich übersehen?

Gruß Slowflyer

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstens hat die Library bereits Funktionen dafür.

Zweitens wäre meine erste Vermutung, dass die die EESAVE-Fuse
nicht gesetzt hast und dir AVR Studio klammheimlich bei jedem
Connect die neueste Firmware drüberbügelt und durch den dafür
notwendigen Chip Erase auch den EEPROM löscht.

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Jörg,

die preserve EEPROM.... Fuse ist gesetzt.

Zitat aus der eeprom.h aus der Library:
/* $Id: eeprom.h,v 1.11.2.1 2005/01/13 10:58:01 joerg_wunsch Exp $ */
...
\note This library will \e not work with the following devices since
these
    devices have the EEPROM IO ports at different locations:

    - AT90CAN128
    - ATmega48
    - ATmega88
    - ATmega165
    - ATmega168
    - ATmega169
    - ATmega325
    - ATmega3250
    - ATmega645
    - ATmega6450
...

Wie nun?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah ja, stimmt, du brauchst 'ne avr-libc-1.2.5.

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit der avr-libc-1.2.5 funktioniert es, Danke!

Für alle, die die libc nicht neu kompilieren wollen oder können gibt es
eine Alternative. Auf der Seite von Atman Electronics
(http://www.atmanecl.com/EnglishSite/SoftwareEnglish.htm) gibt es das
AVRGCCUpdate zum herunterladen. Es beinhaltet:

- gcc 3.4.4
- binutils-2.16.1
- avr-libc-1.2.5

Einfach installieren und die Verzeichnisse "lib", "avr", "bin"
und "libexec" im WinAVR-Vrezeichnis mit denen aus dem neu angelegten
Ordner (default "C:\Programme\AVRGCC 3.4.4\avrgcc") des GCC
überschreiben (ob das notwendig ist, weiss ich nicht, jedenfalls
funktuioniert es so bei mir). Und so hat man die libc-1.2.5

Ich hoffe das nützt Einigen, die wie ich auf der Suche nach der
kompilierten libc-1.2.5 waren.

Gruß Slowflyer

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.