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 U. Koerner - 15.06.2016 0:10)
Als Antwort auf Re: AVR32 und EEPROM_Write von Tobias - 7.06.2016 8:33
Ich nutze:
C-Control Pro Mega128, eigenes Board
> > > 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

Hallo Tobias,
ich gratulier Dir zum Erfolg. Auf Deinen Post hin habe ich mir mein AVR32 Modul etwas
genauer angeschaut. Da ist ein Serielles-EEPROM 24LC512 eingebaut,
von Microchip,mit 64 kByte. Die Geräteadresse für Schreibzugriffe ist 0xA0, für Lesezugriffe 0xA1.
Sehr unglüclicher Umstand, das der Uhrenbaustein die gleiche Geräteadresse hat, wie der
EEPROM. Bitte schreib doch mal, um welchen Uhrenbaustein es sich handelt.

Das Handbuch zur IDE ist da wirklich etwas schlecht aufgestellt, was die Beschreibung der
Befehle und Syntax betrifft. Die Beispiele sind da auch nicht besonders hilfreich, zumal
zwar die Geräteadresse von 0x50 auf 0xA0 angepasst wurde, aber für Schreiben und Lesen immer
noch gleich ist. Kann so nicht funktionieren.

Mittlerweile ist es hier im Forum auch recht ruhig geworden. Früher waren die Entwickler der
IDE, z.B. Peter S.öfters im Forum unterwegs und konnten mit Tips weiterhelfen.
Ich denke, das Conrad die C-Control Reihe zugunsten von Arduino& Co. langsam aussterben lässt.
In Mannheim im Conrad-Shop gibt es nur noch Arduinos, wo vorher C-Control angeboten wurde.
Arduinos bekommt man im Net billiger, alternativ gibt es mit AVR-Studio oder BasCom brauchbare
IDE's und lebendige Foren, wie z.B. Microcontroller.Net.
Möglicherweise ist es Zeit,sich neu zu orientieren.

MfG
U. Koerner



    Antwort schreiben


Antworten:

Re: AVR32 und EEPROM_Write (von Tobias - 24.06.2016 21:33)