Forum: Mikrocontroller und Digitale Elektronik ATTiny26 EEprom lesen/schreibe. Ich blicks nicht


von Marcus (Gast)


Lesenswert?

Hallo

ich bin absoluter AVR Anfänger und möchte Daten in das EEProm eines 
ATTiny26 schreiben und danach wieder auslesen. Leider komm ich mit dem 
was im Datenblatt steht überhaupt nicht klar.
Würde mich über einen kleinen Codeschnipsel ö.ä. sehr freuen.

Gruß Marcus

von Marcus (Gast)


Lesenswert?

Programmieren tu ich mit AVR Studio in C

von Koko Lores (Gast)


Lesenswert?


von Marcus (Gast)


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.

von Koko Lores (Gast)


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!

von Marcus (Gast)


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 ???

von Koko Lores (Gast)


Lesenswert?

>schön das Du mich als Faul bezeichnest
Tut mir leid, daß Du das falsch verstanden hast.

von Joerg X. (Gast)


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

von Marcus (Gast)


Lesenswert?

Superfettes Dankeschön, genau das was ich gesucht habe

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
Noch kein Account? Hier anmelden.