Forum: Mikrocontroller und Digitale Elektronik EEPROM Daten kontinuierlich schreiben?


von Osmodia (Gast)


Lesenswert?

Hi,

ich möchte Daten im Format "1.Datum, Uhrzeit" im internen EEPROM von 
einem ATmega8 abspeichern. Die Ziffer am Anfang soll kontinuierlich um 1 
erhöht werden, die Uhrzeit kommt per DCF77.
Es soll also jedesmal bei einem Tastendruck die Ziffer um 1 erhöht 
werden, und dazu die passende Uhrzeit.


Ich programmiere in Bascom, falls jemand mir ein Beispiel oder einen 
Tipp geben könnte.

Danke!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die erste Frage, die du dir stellen solltest:
Wie oft speicherst du ins EEPROM an die gleiche Stelle? Das geht nur ca. 
100000 mal lt. Datenblatt, dann erreicht der EEPROM seine 
'Garantiegrenze' und hält evtl. seine Daten nicht mehr. Wenn du jede 
Sekunde was ins EEPROM schreibst, ist nach ca. 1,5 Tagen Feierabend.
Ein externes EEPROM sieht da besser aus, die halten so ca. 1 Millionen 
Schreibzyklen.

von Osmodia (Gast)


Lesenswert?

Hi,

es wird nicht jede Sekunde geschrieben, höchstens 3-4 mal am Tag.
Ein externes EEPROM ist natürlich möglich, ich wollte das eigentlich nur 
mit dem µC realisieren, wenn du aber sagst dass ein externes EEPROM 
besser wäre dann ist das natürlich sinnvoller.

von Falk B. (falk)


Lesenswert?

@  Osmodia (Gast)

>es wird nicht jede Sekunde geschrieben, höchstens 3-4 mal am Tag.

Gut, dann reicht es vielleicht 25.000 Tage, macht ~4 Jahre.

>Ein externes EEPROM ist natürlich möglich, ich wollte das eigentlich nur
>mit dem µC realisieren, wenn du aber sagst dass ein externes EEPROM
>besser wäre dann ist das natürlich sinnvoller.

Nö, das interne reicht. Köpfchen ist angesagt.

http://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren

von Stefan (Gast)


Lesenswert?

Ich glaube, das habt ihr falsch gerechnet.

Er will ja nicht bei jedem Tastendruck das gesamte EEPROM überschreiben, 
sondern nur einen Datensatz anhängen.

Angenommen, so ein Datensatz umfasst 8 Bytes, dann passen 64 Datensätze 
in den EEPROM des ATmega8. Bei 4 Tastendrücken pro Tag ist der Speicher 
nach 16 Tagen voll und muss erst danach überschrieben werden. Das kann 
man mindestens 100.000 mal machen, also reicht die Lebensdauer des 
Speicher mindestens für 1.600.000 Tage aus (~4400 Jahre). Was will man 
mehr?

By the way: 25.000 Tage sind nicht ~4 Jahre.

von amateur (Gast)


Lesenswert?

@Osmodia

So lange Du nicht damit rüber kommst, was Du überhaupt erreichen willst, 
werden alle Vorschläge bestenfalls mittelprächtig bleiben.

von Karl H. (kbuchegg)


Lesenswert?

amateur schrieb:
> @Osmodia
>
> So lange Du nicht damit rüber kommst, was Du überhaupt erreichen willst,
> werden alle Vorschläge bestenfalls mittelprächtig bleiben.

Auf Deutsch?

Er will, dass ihm jemand aus dem BASCOM Handbuch raussucht, wie man ins 
EEPROM schreibt, weil er selber zu faul dazu ist, sich das in der 
Online-Hilfe nachzulesen oder Google zu benutzen.

von Sucher (Gast)


Lesenswert?

>Er will, dass ihm jemand aus dem BASCOM Handbuch raussucht, wie man ins
>EEPROM schreibt, weil er selber zu faul dazu ist, sich das in der
>Online-Hilfe nachzulesen oder Google zu benutzen.

genau, und dafür ist er sich nicht zu schade, gleich ein paar mehr Leute 
für sich einzuspannen.
http://bascom-forum.de/showthread.php?4769-ATmega8-Daten-im-EEPROM-speichern

von amateur (Gast)


Lesenswert?

@Karl Heinz

Tut mir leid, ich habe mir noch eine gewisse Naivität erhalten.

Bin allerdings auch noch nicht so lange im Forum wie Du und deine
Stellung als Moderator vermuten lässt.

von Falk B. (falk)


Lesenswert?

@  Stefan (Gast)

>Speicher mindestens für 1.600.000 Tage aus (~4400 Jahre). Was will man
>mehr?

;-)

>By the way: 25.000 Tage sind nicht ~4 Jahre.

Arrrgh! Ich hab mit Stunden gerechnet und das auch noch falsch. Asche 
auf mein Haupt.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefan schrieb:
> Ich glaube, das habt ihr falsch gerechnet.
>
> Er will ja nicht bei jedem Tastendruck das gesamte EEPROM überschreiben,
> sondern nur einen Datensatz anhängen.

Ist schon klar, dewegen frug ich ja:

Matthias Sch. schrieb:
> Wie oft speicherst du ins EEPROM an die gleiche Stelle?

um die begrenzte Lebensdauer des EEPROMs deutlich zu machen. EEPROM ist 
eben kein Speicher für Variable, die öfter mal geändert werden. Falks 
Hinweis auf eine sinnvolle Power-Fail Routine ist da genau das richtige.

von Karl H. (kbuchegg)


Lesenswert?

Matthias Sch. schrieb:
> Stefan schrieb:
>> Ich glaube, das habt ihr falsch gerechnet.
>>
>> Er will ja nicht bei jedem Tastendruck das gesamte EEPROM überschreiben,
>> sondern nur einen Datensatz anhängen.
>
> Ist schon klar, dewegen frug ich ja:
>
> Matthias Sch. schrieb:
>> Wie oft speicherst du ins EEPROM an die gleiche Stelle?
>
> um die begrenzte Lebensdauer des EEPROMs deutlich zu machen. EEPROM ist
> eben kein Speicher für Variable, die öfter mal geändert werden. Falks
> Hinweis auf eine sinnvolle Power-Fail Routine ist da genau das richtige.

Na ja. Bei 3-4 mal Schreiben am Tag braucht man sich über die 
Lebensdauer des EEPROMS keine Gedanken machen. Bis der ausfällt, ist der 
µC längst vergammelt.

von Osmodia (Gast)


Lesenswert?

Ich konnte ja nicht ahnen, das manche den Sheriff für andere Foren 
spielen wollen.
Deswegen möchte ich mich entschuldigen, besonders bei dir "Sucher" das 
ich dich vorher nicht um Erlaubnis gefragt habe. Ich vergaß, das jeder 
normale Mensch nur ein Thema in einem Forum über dasselbe Thema öffnen 
darf.
Außerdem wusste ich nicht, dass hier nur Profis sind die jeden Tag damit 
zu tun haben und auch Zeit dafür haben.

/sarkasmus off

Übrigens bin ich nicht zu faul, sondern einfach nur neugierig und wollte 
einen Erfolg in meinem Projekt haben.

Ich habe gedacht dass ein Forum dazu da ist Menschen zu helfen.
In dem Thread sind nur sehr wenige nützliche Beiträge. Aber nein, da 
müssen sich manche aufspielen, und darüber meckern wie faul der 
Threadersteller doch ist, aber nichts Produktives beitragen.


Tut mir leid eure Zeit in Anspruch genommen zu haben, kommt nie wieder 
vor.
Danke an die anderen, die etwas sinnvolles beigetragen haben.

von Karl H. (kbuchegg)


Lesenswert?

Osmodia schrieb:


> Übrigens bin ich nicht zu faul, sondern einfach nur neugierig und wollte
> einen Erfolg in meinem Projekt haben.
>

Übrigens gibt es zu BASCOM eine wunderbare Doku und einige 
Online-Tutorien.

> Ich habe gedacht dass ein Forum dazu da ist Menschen zu helfen.

Wenn sie konkrete Probleme haben. Aber das Forum ist nicht dazu da, um 
dir aus der Doku vorzulesen.

http://avrhelp.mcselec.com/

Mach die "BASCOM Language Reference" auf
und scroll runter bis $EEPROM
Draufklicken - und da hast du deine Beschreibung. Inklusive Beispiel.

(PS: Du hast genau dieselbe Hilfe auch schon auf deinem Rechner. Einfach 
mal F1 drücken)

Was machst du eigentlich, wenns mal wirklich schwierig wird?`

von dr.prof.schlau (Gast)


Lesenswert?

Falk Brunner schrieb:
> Gut, dann reicht es vielleicht 25.000 Tage, macht ~4 Jahre.

[schlauschnackmode ON]
Das sind dann wohl eher 68 Jahre...
[/schlauschnackmode OFF]

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.