Forum: Mikrocontroller und Digitale Elektronik Flash zum Speichern


von Matthias (Gast)


Lesenswert?

Hallo!

Ich möchte mir ja eine Lüftersteuerung für meinen PC basteln, und habe
es soweit fast fertig, allerdings muß ich jetzt die Temperaturwerte
vorher via ISP einspielen, bei einer späteren Änderung im Menü
speichert er den Wert nicht (ist klar, halt RAM).

Was kann ich tun um ein paar bytes fest zu speichern, hat der AT90s4433
ein internes flash wo sowas möglich ist?
Wenn ich ein externes benötige, wo bekomme ich das eine
Typenbezeichnung wäre super, da sonst finde ich das im leben nicht.

Danke!

von raoul4 (Gast)


Lesenswert?

hallo,
also ich kenne das so:
im flash speichert man das abzulaufende programm, und im eeprom kann
man variablen speichern. welche programmiersprache benützt du? bin
selber noch anfänger, vielleicht stimmts auch nicht, was ich hier
schreibe.
mfg raoul4

von leo9 (Gast)


Lesenswert?

Schaust halt ins Datenblatt und suchst nach EEprom, zu 99% hat 4433
eins. Sollte er keines haben oder zuwenig Platz google nach i2c und
EEprom und du wirst sicher fündig.

grüsse leo9

von remo (Gast)


Lesenswert?

4433 hat ein internen EEPROM
Da kannst du das bequem ablegen, im Datenbaltt des 4433 ist beschrieben
wie du auf das EEPROM zugreifen kannst, ist relativ einfach, Address
anlegen, strobe, Datum lesen/schreiben.
Mit den Prommern, mit denen du den code ins flash schreibst, kannst du
idR auch das EEprom initial beschreiben, falls du im Betrieb nur lesen
willst.
Externe Lösungen sind komplizierter zum ansteuern, wenn dann würde ich
auf ein I2C EEprom zurückgreifen z.B. 24C01

ciao
remo

von Matthias (Gast)


Lesenswert?

Ja aber kann man das EEprom aber auch wieder beschreiben, also im
laufenden Programm Variablen zwischenspeichern, die nach dem
ausschalten noch da sind?
Was genau für ein Teil benötige ich den?
Ich programmiere mit Bascom Basic, und finde das eigendlich ziemlich
gut.

von Nik Bamert (Gast)


Lesenswert?

Hi!

Ich würde dir empfehlen, die variablen am anfang zu lesen und am Ende
des Programms zu speichern. Ich meine damit nur das der Wert nicht
dauern ändern soll dafür kannst du eine normale Variable nehmen..Dies
nur, weil ein Eeprom nicht beliebig oft beschrieben werden kann.
Sondern jede Zelle 'nur' etwa 100000 mal. Und sagen wir du setzt die
Variable zum Beispiel so ein:

for a = 1 to 10000
next a

..wobei a diese Variable wäre, wäre die Zelle schnell mal futsch..
Aber guck mal in der Bascom Hilfe unter:

readeeprom
writeeeprom

Es besteht auserdem die Möglichkeit eine Variable als EEprom Variable
zu definieren. Dies ginge z.B. so:
Dim a as eram byte

MFG Nik

von Shazter (Gast)


Lesenswert?

Hi,

du solltest in deine EEPROM Funktion einige wichtige Sachen beachten.
z.B. Wert nur bei Aenderung ins EEPROM speichern. Erhoeht sehr stark
die Lebensdauer des EEPROMS. Desweiteren ist darauf zu achten das du
das erste Byte im EEPROM nicht benutzt, da es vorkommen kann das es
nach einem RESET geloescht wird.


Mfg

Dirk

von Matthias (Gast)


Lesenswert?

Danke für die Antworten, hat mir sehr geholfen.
Der Wert  soll eigendlich nicht so oft geändert werden, halt nur um
einen Sollwert einer Temperatur zu speichern, also wird dieser Wert
dann (fast) immer nur gelesen.
also dim as eram byte wäre genau das richtige.

Nochmal besten Dank!

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.