Ich habe schon ein wenig über EEProm gesucht, vor allem in Zusammenhang
mit dem Attiny der ja 128 Bytes zur Verfügung hat. Allerdings verstehe
ich das Code-Beispiel nicht so genau.
Wieviele Bytes werden da pro Zeile belegt? Wie funktioniert das mit der
Adressierung? Ich hätte ja gesagt, dass z.B. 0x01 den ersten Eintrag
bestimmt, wobei die Daten dann in 0x2A, 0x00, 0x24, 0x91 und 0xFD
liegen. Aber 0x00 z.B. taucht ja mehrmals auf, was für mich heißen
würde, dass es auch mehrmals benutzt/beschrieben wird.
Mag mich jemand aufklären?
Grüße
Wenn Du wissen willst wie man den EEPROM eines AVR mit avr-gcc benutzt
ist die avr-libc der richtige Platz um nachzulesen.
http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.htmlDenno schrieb:> Wieviele Bytes werden da pro Zeile belegt?
pro Zeile 6 Byte
* 4 Zeilen = 24 Bytes hintereinander im EEPROM
Das was in dem Code-Beispiel in den EEPROM geschrieben wird ist ein
mehrdimensionales array und es sind alles Daten.
Ein array fangt bei Index 0 an.
also ist an index
0x00 der Wert 0x01
und an index
0x06 der Wert 0x02
Hi,
Juergen G. schrieb:> Wenn Du wissen willst wie man den EEPROM eines AVR mit avr-gcc benutzt> ist die avr-libc der richtige Platz um nachzulesen.
Danke für den Verweis, das werde ich mir mal genau anschauen! :)
Juergen G. schrieb:> also ist an index> 0x00 der Wert 0x01> und an index> 0x06 der Wert 0x02
Okay, also Index 3 wäre dann 0x24, richtig?
Juergen G. schrieb:> pro Zeile 6 Byte> * 4 Zeilen = 24 Bytes hintereinander im EEPROM
Das heißt ja, das im eeprom noch genügend Platz sein sollte, richtig?
Wie müsste dann die nächste Zeile ausschauen, damit noch ein fünfter
Datensatz gespeichert werden könnte? Angangen wohl definitiv mit 0x05,
richtig? Was mich immer noch irritiert, ist, dass die jeweils dritte
Stelle z.B. in jeder Zeile gleich aussieht. Weiter im Programm wird die
ID einer RFID-Karte in das eeprom geschrieben. Wie oben schon erwähnt,
könnte ich ja das ganze auf mehr als vier IDs erweitern...das ist
erstmal mein Ziel.
Grüße
P.S. Ich bin mir nicht sicher wie das ausschaut mit "fremden Code" hier
reinstellen. Damit Ihr euch aber vielleicht besser ein Bild davon machen
könnt, verweise ich mal auf die Quelle:
http://www.projektsammlung.de/projekte/rfid-reader-modul/
Denno schrieb:> Hi,>> Juergen G. schrieb:>> Wenn Du wissen willst wie man den EEPROM eines AVR mit avr-gcc benutzt>> ist die avr-libc der richtige Platz um nachzulesen.>> Danke für den Verweis, das werde ich mir mal genau anschauen! :)>> Juergen G. schrieb:>> also ist an index>> 0x00 der Wert 0x01>> und an index>> 0x06 der Wert 0x02>> Okay, also Index 3 wäre dann 0x24, richtig?
Nein.
Der Inhalt von Index 3 ist 0x04, 0x4F, 0x00, 0x88, 0x59, 0xB1.
Das ist ein Struct und das Ganze ist ein Array of Structs.
Arbeite in deinem C-Buch die Kapitel über Arrays und Structs durch. Dann
verstehst du das auch.
> Das heißt ja, das im eeprom noch genügend Platz sein sollte, richtig?
Vielleicht. Im EEPROM steht aber auch noch eine ganze Menge Prosa fürs
Display.
mfg.
Thomas Eckmann schrieb:> Nein.> Der Inhalt von Index 3 ist 0x04, 0x4F, 0x00, 0x88, 0x59, 0xB1.> Das ist ein Struct und das Ganze ist ein Array of Structs.>> Arbeite in deinem C-Buch die Kapitel über Arrays und Structs durch. Dann> verstehst du das auch.
Hm, ich schau mir das noch mal genau an...
Thomas Eckmann schrieb:> Vielleicht. Im EEPROM steht aber auch noch eine ganze Menge Prosa fürs> Display.
Nicht mehr, hab den ganzen Display-Kram rausgeschmissen.
Denno schrieb:> Thomas Eckmann schrieb:>> Vielleicht. Im EEPROM steht aber auch noch eine ganze Menge Prosa fürs>> Display.>> Nicht mehr, hab den ganzen Display-Kram rausgeschmissen.
Das könnte man entscheiden, wenn du deinen eigenen Code gezeigt hättest
und nicht nur einen Link auf das Original.
Das ist sowieso immer etwas befremdlich, wenn eine Frage zu einem Code
kommt, klitzekleine Ausschnitte präsentiert werden und für den Rest wird
auf einen Link verwiesen. Dann sieht man sich den Link an, holt von dort
ein Zip-File, macht es auf, sucht sich das betreffende C-File (wobei man
erst mal suchen muss, welches es dann eigentlich ist), sieht da drinn
nach und dann stimmt der dort vorgefundene Code nicht mit dem
präsentierten Mikroausschnitt überein.
Tja. was soll man da machen?
Ich für meinen Teil geh immer mehr dazu über, dann ganz einfach nichts
mehr zu machen. Du bist der, der Hilfe braucht. Nicht ich. Also mach es
mir leicht, dir zu helfen. Das bedeutet: präsentiere DEINEN Code und
nicht einen Link auf irgendwelchen Code, der mit deinem Code nur noch
rudimentär zu tun hat.
Hi,
Karl Heinz,
sorry, es war nicht meine Absicht euch Schwierigkeiten bei der Hilfe für
mich zu bereiten, ganz im Gegenteil. Meine Befürchtung war nur, dass es
problematisch sei, fremden Code zu veröffentlichen, verändert oder
nicht.
Aber da das hier nicht problematisch zu sein scheint, meine modifizierte
Version im Anhang.
Die RFID-Display* sind komplett weg.
Grüße
Und was ist jetzt die Frage?
Wieviel Bytes werden im EEPROM belegt?
Dein Struct
1
typedefstruct{uint8_tID;
2
uint8_tTagByte[5];
3
}gesTagKarten_Struct;
besteht aus einem (überflüssigen)Byte für die ID und 5 Bytes für das
TagByte-Array.
Das Tageskarte-Array besteht aus ANZAHL_KARTEN_IDs_IM_EEPROM dieser
Structs.
Jetzt nimmst du deinen Taschenrechner und rechnest das aus.
mfg.
Thomas Eckmann schrieb:> Und was ist jetzt die Frage?
:-)
Soll ich mal raten?
Die eigentlich Frage dürfte lauten:
Was zum Teufel ist ein struct, was zum Henker macht ein typedef und
warum kann ich mit ...