Hallo,
ich möchte gerne die Adressen meiner Temperaturfühler (DS1820), die aus einem 16Stelligen Code bestehen, im EEprom eines Mega32 speichern.
Hat jemand mal ein Beispielprogramm wie man das machen kann?
Druckbare Version
Hallo,
ich möchte gerne die Adressen meiner Temperaturfühler (DS1820), die aus einem 16Stelligen Code bestehen, im EEprom eines Mega32 speichern.
Hat jemand mal ein Beispielprogramm wie man das machen kann?
Ist doch egal, ob du ein Byte oder 8 abspeichern möchtest.
Normalerweise hast du die Adresse (Family-Code, Serial Number, CRC) in einem 8-Byte Array.
Mit WriteEeprom(Var, Address) kannst du die nun an eine beliebige Stelle ins EEPROM schreiben. Immer ein Byte nach dem anderen.
Lass die Adresse 0 aus, da gibt es einen Bug bei den Controllern.
Gruß
Rolf
Hallo Rolf,
habs hinbekommen aber du kannst mir vielleicht noch einen Tip geben.
Ich speicher die 8 Byts jetzt so ab:
Wenn ich mir mit Ponyprog den Speicher ansehe sieht es wie im angehängten Bild aus.Code:Writeeeprom Dsid1(1) , &H110
Writeeeprom Dsid1(2) , &H120
Writeeeprom Dsid1(3) , &H130
Writeeeprom Dsid1(4) , &H140
Writeeeprom Dsid1(5) , &H150
Writeeeprom Dsid1(6) , &H160
Writeeeprom Dsid1(7) , &H170
Writeeeprom Dsid1(8) , &H180
Ich ahbe den Eindruck dass dabei viel Speicher ungenutzt bleibt?
Kann man die daten nicht nach rechts fortschreiben?
Wie lauten dafür die Adressen?
Grüße
Tobias
Du schreibst nach H110, H120 usw.
Mach's doch lieber so:
Offset=$HF0 'wenn du unter H100 bleibst, kannst du Offset als Byte deklarieren
For I = 1 To 8
Writeeeprom Dsid(I), offset
incr offset
Next I
Denke daran, nicht zu oft (>10.000 mal) auf eine Stelle im EEPROM zu schreiben.
Gruß
Rolf
Ist zwar nicht direkt zutreffend aber
Ich will für eine Temperaturmessung eine Abweichung eingeben, die bei reset des AVRs erhalten bleibt.
Kann ich einfach das EEPROM beschreiben und hab dann nach einem Neustart den EEPOROM Wert wieder? Oder wird der beim Neustart auf einen festen Wert gesetzt?.
Danke
Günther
Nach dem Neustart musst Du den Wert erst aus dem EEprom lesen und vor dem reset brauchst Du ne gewisse Zeit damit der Wert gespeichert werden kann.
OK . Danke für die schnelle Antwort.
Es ist also so wie ich es mir vorgestellt hab nämlich dass beim Neustart der Wert im EEPROM unverändert bleibt.
Gruß
Günther