Moin!
Ich würde sagen, die zehn Bit als Integer (16bit) verpacken und im Eeprom speichern wäre eine Möglichkeit.
Mfg
Volker
Hallo!
Wie aus der Überschrift zu Entnehmen möchte ich 10bit abspeichern können, sodass ich nach einer Stromunterbrechung noch auf die 10bit zugreifen kann!
Hat jemand eine Idee wie und ob das überhaupt zu realisieren ist?
mfG Torben
Für jede Hilfe dankbar!
Moin!
Ich würde sagen, die zehn Bit als Integer (16bit) verpacken und im Eeprom speichern wäre eine Möglichkeit.
Mfg
Volker
Meine kleine Seite
http://home.arcor.de/volker.klaffehn
http://vklaffehn.funpic.de/cms
neuer Avatar, meine geheime Identität
danke für die schnelle Antwort!Zitat von vklaffehn
Wie speicher ich die denn in den Eeprom?
also befehl?
mfG Torben
Moin!
Öhm... voll erwischt, ich habe von Bascom keine Ahnung, aber da gibt es bestimmt eine Hilfe, in der man nach 'Eeprom' suchen kann.
Oder bei Google : http://www.electro-tech-online.com/m...tmega-8-a.html
MfG
Volker
Meine kleine Seite
http://home.arcor.de/volker.klaffehn
http://vklaffehn.funpic.de/cms
neuer Avatar, meine geheime Identität
Einfach ne Variable im EEPROM anlegen (Stichwort ERAM) und beim erkennen des Stromausfalles oder schon davor abspeichern.
Angenommen XE ist die ERAM-Variable, XR enthält den Wert als normale Variable im RAM; dann siehts Speichern einfach so aus: XE = XR.
#ifndef MfG
#define MfG
ok danke!!
noch was kleines hinterhergeschoben..
ich hab bei variablen ja u.a. bit und byte zur auswahl!!
wenn ich eine byte variable anlege mit dem wert 00000000
und dann sage b=b+1
kommt dann 00000001
und danach 00000010 raus?
Sorry für die Fragen.. habe aber zur Zeit leider kein experimentier Board zur Verfügung... bzw. keine Controller
mfG Torben
jo genau:
...000
...001
...010
...011
...100... etc...
#ifndef MfG
#define MfG
nochmals Danke!!
dim temp_word as word at &hd0
dim low_byte as byte at &hd0 overlay
dim high_byte as byte at &hd1 overlay
dim eram_high_byte as eram byte
dim eram_low_byte as eram byte
' beim Start nach Reset z.B.
high_byte = eram_high_byte
low_byte = eram_low_byte
do
incr temp_word
print temp_word
eram_high_byte = high_byte
eram_low_byte = low_byte
wait 1
loop
Vor den Erfolg haben die Götter den Schweiß gesetzt
hallo,
dabei gilt es noch zu beachten: das EEPROM bitte nicht ständig mit Schreibattaken in der Doloopschleife vollballern!
erstens dauert das Schreiben ins EEPROM ewig, stellt die ganze Maschine hin und drittens ist das EEPROM nach ein paar Schreibzyklen wegen Altersschwäche hinüber
Quellenangabe:
Bascom Hilfe:
An important difference is that an ERAM variable can only be written to a maximum of 100.000 times. So only assign an ERAM variable when it is needed, and never use it in a loop or the ERAM will become unusable.
All interrupts are disabled while the EEPROM data is written. Interrupts are enabled automatic when the data is written.
Datasheet ATMega8:
Endurance: 100,000 Write/Erase Cycles
Lesezeichen