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!
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.
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.
@ 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
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.
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.
>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
@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.
@ 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.
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.
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.
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.
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?`
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]