ATTiny26 EEprom lesen/schreibe. Ich blicks nicht

Gast #555176
Lesenswert?
• ▲
▼
Ja, hab ich auch schon gesehen.
Doch da ist das Problem das da für den Anfang zu viel Info drin steckt. 
Ich mach das eher mit "learning by doing"
sprich, ich hab lieber ein korrektes Codebeispiel das ich anhand der 
Funktion zu verstehen versuche.
Gast #555187
Lesenswert?
• ▲
▼
Naja, das Datenblatt ist natürlich ziemlich mühselig, aber wenn Du zu 
faul bist, dir das Gewünschte aus dem relativ guten Tutorial 
rauszusuchen, hast Du wohl Pech gehabt.
Konkrete Antworten gibt's nur auf konkrete Fragen..
Schreib was mit AVR Studio ins EEProm, und versuch dann, Dir das im µC 
auszulesen. Ist schonmal ein kleiner Schritt.
Beim Schreiben extrem vorsichtig ein, der Speicher ist irgendwann hin. 
Das kann schnell gehen.
Viel Erfolg!
Gast #555199
Lesenswert?
• ▲
▼
Hallo,

schön das Du mich als Faul bezeichnest, ich sehe das allerdings anders.
Leider hab ich nicht die Zeit und auch nicht die Muse mir ein 120 Seiten 
Tutorial durchzulesen (was ich im übringen vor geraumern Zeit doch getan 
habe), um danach festzustellen das das geschriebene mit dem im 
Datenblatt dann doch nicht übereinstimmt.

Zu der konkreten Antwort auf eine konkrete Frage. Hat mir jemand einen 
Codeschnipsel in dem diese Funtion enthalten ist ???
Gast #555247
Lesenswert?
• ▲
▼
sowas?:
1
#include <avr/eeprom.h>
2
#include <avr/io.h>
3
#include <stdint.h>
4

5
uint8_t eebyte EEMEM; /* ein Variable im EEPROM, Adrese wird vom Linker festgelegt, kann auch gleich initialisiert werden: */
6
int8_t anders EEMEM = -34;
7
uint8_t einbyte; //ein Byte im RAM
8

9
einbyte = eeprom_read_byte(&eebyte); /*Der Funktion die Adresse von eebyte geben, die Funktion "eeprom_read_word()" funktioniert genauso für 16-Datentypen, für alles andere gibts "eeprom_read_block()"*/
10

11
//Byte ins EEPROM schreiben:
12
eeprom_write_byte(&eebyte, einbyte);
13
/* größere Typen entsprechend ..._word(), bzw .._block()
14

15
wenn du an eine feste Adresse schreiben willst (das KANN in die Hose gehen..): */
16
eeprom_write_byte((uint8_t*)0x10, einbyte);
Das Tut. ist zum überfliegen ein bischen zu dicht gepackt, zugegeben :(

-Jörg

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.