EEPROM Daten kontinuierlich schreiben?

Gast #2906451
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!
(Firma: matzetronics) #2906456
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.
Gast #2906469
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.
#2906802
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
Gast #2906830
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.
#2906887
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.
(Firma: matzetronics) #2907050
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.
#2907087
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.
Gast #2908224
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.
#2908624
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?`

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