internes EEPROM at89s8253

Gast #2087654
Lesenswert?

Hallo zusammen

Ich möchte das interne EEPROM  des at89s8253 ansteuern.
Ich haben hier im Forum auch schon gestöbert und etwas gefunden.
Dies habe ich kopiert und in mein Programm eingebunden.

Es läuft alles super, das ein- wie auch das auslesen.
Nun habe ich aber eine Frage beim einlesen:
Wenn ich jetzt so ein Array im EEPROM abspeichern will, muss
ich für jede Arraystelle eine neue zeile nehmen um einen Wert zu 
speichern?

Also z.b so:

arr[0]=12;
arr[1]=15;
arr[2]=28;
arr[3]=33;

oder kann ich es irgendwie auch alles aufeinmal abspeichenr wie das:

arr[4]={12,15,28,33};


Hier wäre noch mein code zum einlesen in das EEPROM falls dieser hilft.

unsigned char xdata arr[20];

void init(){

EECON |=  0x08; //EEMEM=1 Memory Select interner XDATA
EECON |=  0x10; //EEMWE=1 Write-Enable
EECON |=  0x20; //EELD=1  Page-Mode 32Byte

arr[0]= 12;
arr[1]= 15;
arr[2]= 28;
...

EECON &=  0xDF; //EELD=0 Page-Mode beenden
arr[19] = 17; // Schreiben auslösen (Kennbyte, nur Bsp.)
while (!(EECON & 0x02)); // Warten bis Bytes im EEPROM geschrieben sind
EECON &=  0xEF; //EEMWE=0 Write-Disable
EECON &= 0xF7;

}
Gast #2088531
Lesenswert?

> oder kann ich es irgendwie auch alles aufeinmal abspeichenr wie das:
> arr[4]={12,15,28,33};
Das geht nicht. Was du machen kannst ist eine Funktion, die die Adresse 
bzw. einen Pointer des XDATA-Arrays bekommt und in einer Schleife die 
jeweiligen Werte ins EEPROM schreibt.

Ralf
Gast #2088544
Lesenswert?

Ralf schrieb:
> Was du machen kannst ist eine Funktion, die die Adresse
>
> bzw. einen Pointer des XDATA-Arrays bekommt und in einer Schleife die
>
> jeweiligen Werte ins EEPROM schreibt.

Ja auf die Idee mit einer Schleife bin ich auch gekommen.
Nur die Werte die Ich einlesen muss sind nicht der Reihenfolge, sonder 
wild durcheinander und da kommt keine Schleife in Frage...

Eine andere Möglichkeit gibt es nicht?
Gast #2090923
Lesenswert?

> Nur die Werte die Ich einlesen muss sind nicht der Reihenfolge, sonder
> wild durcheinander und da kommt keine Schleife in Frage...
Nur zur Klärung: Meinst du die Werte selbst oder die Position innerhalb 
des Arrays?
Im ersten Fall geht's mit einer Schleife, im zweiten Fall kannst du ein 
temporäres Array verwenden und füllen und dieses dann in einer Schleife 
schreiben.

Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren