-         

Ergebnis 1 bis 7 von 7

Thema: Adresse eines 1-Wire DS1820 im EEprom speichern

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    44
    Beiträge
    180

    Adresse eines 1-Wire DS1820 im EEprom speichern

    Anzeige

    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?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    44
    Beiträge
    180
    Hallo Rolf,

    habs hinbekommen aber du kannst mir vielleicht noch einen Tip geben.
    Ich speicher die 8 Byts jetzt so ab:
    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
    Wenn ich mir mit Ponyprog den Speicher ansehe sieht es wie im angehängten Bild aus.
    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
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken eeprom.jpg  

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2007
    Beiträge
    12
    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

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    37
    Beiträge
    687
    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.
    Signatur??? kann ich mir nicht leisten!!!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2007
    Beiträge
    12
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •