Hi. Frage mich schon die ganze Zeit, wie das jetzt mit dem EEprom funktioniert. Man nimmt doch den EEprom, um Daten zu speichern, so wie beim SRAM, nur das der nach Spannungsabfall wieder weg ist. Der EEprom bleibt doch nach wegnehmen der Spannung, oder? So, jetzt will ich was ins EEprom speichern, aber wohin?. Beim AVRSTUDIO ist beim EEprom schon alles mit Hezzahlen vollgeschrieben, wenn ich den Debugger starte. Wie kommt das? Warum sind nicht alle EEprom Adressen aud FF, sowie beim SRAM. Weil das Programm schreibt er ja ins Flash, oder? Vielen Dank im voraus. Gruß Avusgalaxy
"Der EEprom bleibt doch nach wegnehmen der Spannung, oder?" ja "So, jetzt will ich was ins EEprom speichern, aber wohin?" such dir was aus. du hast die freie wahl "Warum sind nicht alle EEprom Adressen aud FF, sowie beim SRAM. " sind sie auch nach einem chip erase. keine ahnung warum im debugger nicht "Weil das Programm schreibt er ja ins Flash, oder?" ja
Eine Frage noch.... Wenn ich ins SRAM das Register 16 in der Adresse 0x0060 ablegen will, dann mach ich das doch so: STS 0x0060, R16 Wenn ich es mir wieder holen will, dann so: LDS R16, 0x0060 Wie sieht das dann beim EEprom aus? Bei den Beispielen im Tutorial wird auf sowas nicht eingegangen, oder ich verstehe was falsch. Wie könnte ich den Hex-Wert des Registers 16 ins EEprom speichern, und dann eventuell wieder auslesen=? Weiß das jemand? Gruß Avusgalaxy
Ich finde das in den Datenblättern exzellent beschrieben, teilweise sogar mit Beispielcode. Warum liest Du nicht da nach? Kurzfassung: Lesen: - Adresse der gewünschte EEPROM-Zelle in das Register EEAR (bzw. EEARL und EEARH je nach Modell) laden - Das EERE-Bit im Register EECR setzen (auf 1) - je nach Modell: Warten bis das EERE-Bit wieder zurückgesetzt wurde (auf 0) - Daten (1 Byte) aus dem Register EEDR lesen Schreiben: - Adresse der gewünschte EEPROM-Zelle in das Register EEAR (bzw. EEARL und EEARH bei mehr als 256 Bytes EEPROM) laden - zu schreibende Daten in das Register EEDR laden - das EEMWE-Bit im Register EECR setzen - im nächsten Befehl das EEWE-Bit im Register EECR setzen - Der Schreibvorgang ist beendet, wenn das EEWE-Bit wieder zurückgesetzt wurde Da es (gerade beim Schreiben) auf das Timing ankommt, sollte man Interrupts wenn möglich nicht zulassen. Christian
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.