Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: AVR32 und EEPROM_Write Kategorie: Programmierung C (von Tobias - 7.06.2016 8:33)
Als Antwort auf Re: AVR32 und EEPROM_Write von U. Koerner - 4.06.2016 20:19

> > Hallo,
> >
> > ich habe ein kleines Problem mit dem AVR32 und der EEPROM_Write-Funktion:
> >
> > Wenn ich zwei Byte in das EEPROM überschreibt anscheinend das Zweite das Erste:
> >
> >    EEPROM_Write(0,lcd_light);
> >    EEPROM_Write(1,touch_beep);
> >
> > In lcd_light schreibe ich Werte von 10-90, in touch_beep 0-1. Beides sind BYTE.
> > Der touch_beep wird gespeichert, lcd_light nicht.
> >
> > Wenn ich den Aufruf umdrehe
> >
> >    EEPROM_Write(1,touch_beep);
> >    EEPROM_Write(0,lcd_light);
> >
> > wird lcd_light gespeichert und dafür touch_beep nicht.
> > Wenn ich je eine Zeile auskommentiere klappt das Speichern auch.
> >
> > Ist beim AVR32 in der EEPROM_Write-Funktion ein Unterschied zum MEGA128?
> >
> > MfG, Tobias
> >
> > PS: IDE 2.40 (2.31 geht aber auch nicht)
>
> Hallo Tobias,
> ich habe gerade das Handbuch von ATMEL für den AVR32 noch mal angeschaut.
> Dort gibt es kein internes EEPROM, im Gegensatz zu den Mega32 und
> Mega128.
> Es befindet sich ein 64kByte-EEPROM auf der AVR32-Unit, jedoch ist das über
> den I2C-Bus mit der AVR32 verbunden.
> Ich denke da sind die Angaben im C-Control-Pro Handbuch irreführend.
>
> Mehr fällt mir auch nicht ein
> MfG
> U.K.
>

Hallo U.K.,

danke für Deine Mühe... Das Problem hat sich wie folgt gelöst:

Ich bin davon ausgegangen, dass man das EEPROM auf der AVR32-Unit auch mit den
EEPROM_Write und _Read-Befehlen ansprechen kann. Und... das funktioniert auch so!

Folgenden Fehler habe ich gemacht:
Ich habe eine Uhrenbaustein auf I²C-Adresse A0 am Bus. Leider habe ich nur in der
gesamten Hilfe keinen Hinweis auf die Adresse des EEPROMs gefunden. Lediglich in
einem Beispielprogramm zum I²C-Bus habe ich erkennen können was die EEPROM-Adresse
ist. Hier hatte ich erst im Online-Manual geschaut, wo die Adresse 0x50 angegeben ist
(siehe LINK).

Erst der Blick in die Hilfe in der IDE selbst hat mich auf die richtige Fährte gebracht,
denn da steht im selben Beispiel die Adresse A0.

Also Uhrenbaustein auf eine andere Adresse gesetzt und schon läuft es (auch mit dem
direkten Ansprechen über EEPROM_Write();

Hier fehlt eindeutig der Hinweis in der Hilfe welche Adresse das EEPROM hat!

MfG, Tobias


    Antwort schreiben


Antworten:

Re: AVR32 und EEPROM_Write (von U. Koerner - 15.06.2016 0:10)
    Re: AVR32 und EEPROM_Write (von Tobias - 24.06.2016 21:33)