Forum: Mikrocontroller und Digitale Elektronik Variablen im EPROM Speichern


von lars13 (Gast)


Lesenswert?

Hallo wieder an Alle hier,

ich muss auf die Schnelle noch ein Problem klären, ich möchte Variablen 
die während des Betriebes eines Atmega32 beschrieben werden, beim 
Ausschalten so speichern das sie beim nächsten Einschalten wieder 
gelesen werden können.
Geht natürlich nur wenn ich diese in einem nichtflüchtigen Speicher 
ablege.
Nur habe ich noch gar keine Erfahrung mit dem EPROM des Atmega32.
Die Schaltung die ich benötige um beim Ausschalten einen externen 
Interrupt auszulösen ist kein Problem. Nur dann im Falle des Interrupts 
die entsprechenden Variablen in den EPROM zu schreiben ist dann schon 
ein Problem für mich.

Bin Anfänger und muss das so schnell wie möglich lösen. Am besten 
gestern.
Ich wäre über schnelle Hilfe wirklich Dankbar.
Vielleicht hat Jemand auch ein kleines Beispiel, so das ich mir den Rest 
noch erarbeiten kann.

Vielen Dank
Lars

von Frank S. (_frank_s_)


Lesenswert?

Hallo Lars,
das ganze ist in BASCOM ganz einfach :

'Variablendeklaration
 Dim T_ein As Single              'flüchtige Variable
 Dim T_ein_sic As Eram Single     'nichtflüchtige Variable

'Variable aus dem ERAM lesen
 T_ein = T_ein_sic

'Variable im ERAM sichern
 T_ein_sic = T_ein

MfG von der Spree

von holger (Gast)


Lesenswert?

>Nur habe ich noch gar keine Erfahrung mit dem EPROM des Atmega32.

Der hat kein Eprom.

>Bin Anfänger und muss das so schnell wie möglich lösen. Am besten
>gestern.

Also Hausaufgabe.

>Ich wäre über schnelle Hilfe wirklich Dankbar.
>Vielleicht hat Jemand auch ein kleines Beispiel, so das ich mir den Rest
>noch erarbeiten kann.

Im Datenblatt stehen Beispiele in C und ASM.

Deine Programmierprache scheint nicht dabei zu sein.

von lars13 (Gast)


Lesenswert?

Entschuldigt, ich programmiere in C. Da ich gewaltig unter Stress stehe 
passiert das leider, das ich wichtige Details vergesse.

>Also Hausaufgabe.

Ja, da hast du völlig Recht, leider fehlt mir die Zeit, übermorgen ist 
Abgabe Projekt und mein Spannemann, der eigentlich dafür verantwortlich 
war, hat mich richtig hängen lassen.

>Der hat kein Eprom.

laut Datenblatt
1024Bytes EEPROM

OK, ich schrieb EPROM und im Datenblatt steht EEPROM, der Unterschied 
liegt hauptsächlich in der Art des Löschens

von Karl H. (kbuchegg)


Lesenswert?

lars13 schrieb:

> Bin Anfänger und muss das so schnell wie möglich lösen. Am besten
> gestern.
> Ich wäre über schnelle Hilfe wirklich Dankbar.


nur keine Panik. Wenn deine Hardware schon steht, die den Schreibvorgang 
auslöst, ist das eine Sache auf ein paar Minuten.

AVR-GCC-Tutorial
Da gibt es einen Abschnitt (15.3) über das EEPROM

von lars13 (Gast)


Lesenswert?

Hallo kbuchegg

vielen Dank für die Antwort. Ich habe das Tutorial durchgearbeit,
das lesen und schreiben der Variablen in den EEPROM funktioniert jetzt.

Allerdings habe ich noch eine Warnung.

../Belichter_Main.c:165: warning: passing argument 1 of 
'__eerd_byte_m32' makes pointer from integer without a cast


Kann mir Jemand erklären was mir diese sagen möchte.

Vielen Dank

von Josef D. (jogedua)


Lesenswert?

dass du dir die Zeile 165 in deiner Datei Belichter_Main.c noch mal 
ansehen sollst.
Dort erwartet der Compiler als erstes Argument einen Pointer, du hast 
ihm aber einen Integer vorgesetzt.
Hättest du mindestens auch diese Zeile veröffentlicht, könnte man 
vielleicht noch mehr dazu sagen.

von lars13 (Gast)


Lesenswert?

Hallo jogedua

Danke für die Antwort und diese hat mich inspiriert noch einmal genauer 
nachzulesen und siehe da, jetzt sind die Warnungen weg und es 
funktioniert bestens. Danke an Alle

Lars

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.