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


von Slowflyer (Gast)


Angehängte Dateien:

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:
1
EEPROM_write(100, 'A');
2
EEPROM_write(101, 'B');
3
EEPROM_write(102, 'C');
4
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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Slowflyer (Gast)


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?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ah ja, stimmt, du brauchst 'ne avr-libc-1.2.5.

von Slowflyer (Gast)


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

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.