Moin, es es nötig eine Arbeitskopie bei Verwendung des EEProm zu erstellen? Also z.B.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Geht das? (aktiv ist in der struct enthalten) Bzw, geht dann auch
1 | |
2 | |
3 | |
4 | |
|
Anzeige
|
AVR EEPROM ArbeitskopieMoin, es es nötig eine Arbeitskopie bei Verwendung des EEProm zu erstellen? Also z.B.
Geht das? (aktiv ist in der struct enthalten) Bzw, geht dann auch
Ratespiel: Controller ist ein AVR und der Compiler ist GCC, liege ich da richtig? Wenn ja, dann solltest Du in der libc-Doku und/oder im AVR-GCC-Tutorial nachsehen, wie Zugriffe auf das EEPROM durchgeführt werden. Dafür gibt es in der eeprom.h spezielle Funktionen.
Gast
#825716
@Johannes Man findet ja zu allen Fragen die Infos in der Doku, bzw. mit Google. D.h. es ist garnicht notwendig, diese Fragen hier zu stellen. Aber ist nicht dieses Forum gerade auch dafür da, bei solchen Fragen weiterzuhelfen und Tips zu geben? Dieses Forum ist echt das Grauen, wieviele sich wohl garnicht erst trauen, hier zu fragen, da IMMER gleich rumgemault wird. Echt bitter. @Nix Nix: Nein, so geht das leider nicht. Du mußt spezielle Schreib- und Leseroutinen für das EEPROM verwenden. Das ist vom verwendeten Controller unabhängig. Falls Du GCC und AVR verwendest, dann findest Du weitere Hinweise z.B. im AVR-Tutorial: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Speicher und und zu der Doku der AVR-LIBC im Internet: http://www.nongnu.org/avr-libc/user-manual/index.html In der Lib sind diese Routinen enthalten, die einem das Leben da schon einfacher machen. Oder Du benutzt die Methode, so wie sie Peter Dannegger hier: Beitrag "Re: [AVR] per Interrupt ins EEPROM schreiben" beschrieben hat. Ist auch sehr schön, finde ich. Die Tut hatte ich mir durchgelesen und mich gewundert das das immer so gemacht wird mit der lokalen Kopie... Weil der Compiler meckert ja nich... PS: Das es ein AVR ist steht im Titel... @ VomForumstonGenervter: Nun, in einem Forum wie diesem kann man nicht erwarten, immer extrem ausführliche Antworten in druckreifen Sätzen zu erhalten (und ich wage mal zu behaupten, dass ich mir schon vergleichsweise einigermaßen Mühe gebe, wenn ich hier was schreibe). Wenn man kurz und knapp auf eine Frage eingeht, dann ist das gleich "rumgemaule" und irgendjemand fühlt sich dadurch angepisst. Dabei war rein gar nichts in meinem Posting auch nur im geringsten böse gemeint. Ich habe auch nichts dagegen wenn Du meinst, Du müsstest dem OP alles vorkauen. Ist Deine Zeit... Ich habe einige Hinweise zur Lösung gegeben und wenn der OP ernsthaft an der Sache interessiert ist und ihm die Infos ernsthaft nicht reichen, dann kann er immer noch nachhaken. OK, das "AVR" im Betreff hatte ich glatt überlesen, aber die Angabe, mit welchem Compiler der OP arbeitet, fehlte. Und darauf sollte man ruhig hinweisen, damit der OP beim nächsten Mal dran denkt...
Gast
#825738
@Johannes: Hmmmm.... nun gut, vielleicht ist mein "AngepisstLevel" sehr niedrig heute;-) Ich hatte es eben so verstanden: "Mann! Dann ließ doch das Manual....". Nun denn.... lass gut sein. Oft werden die Leute hier wirklich angemacht bei Fragen. Dabei ist es auch normal, dass Fragen gestellt werden, deren Antworten irgendwo beschrieben sind. @Nix Nix: Hmmmm im Tutorial steht tatsächlich nicht, dass es sich bei EEPROM um einen besonderen Speicher handelt, nur das er nichtflüchtig ist und man besondere Routinen braucht. Die Speicherzugriffe sind anders als beim RAM, man muß besondere "Mechanismen" zum Lesen/Schreiben verwenden. Das EEPROM hat dafür besondere Steuerregister. Darum geht das nicht so, wie Du es Dir vorgestellt hast. Weitere Infos dazu findest Du auch im Datenblatt Deines AVRs. D.h. Ich mach
Und dann gehts?
Gast
#825937
Ja, wenn Du dann die Eepromfunktionen richtig verwendest. Du must auch beachten, dass EEPROM-Speicher grundsätzlich eine begrenzte Anzahl an SCHREIB-Zyklen hat. Lesen kannst Du so oft du möchtest. Schreibzyklen sind nach Herstellerangaben bei ATMEL ca. 100000 möglich. Meist geht es öfter, aber es können dir dann Daten verloren gehen. D.h. Du must aufpassen, dass Du nicht andauernd ins EEPROM schreibst, sondern nur, wenn sich en Wert ändert. Und wenn sich andauernd Werte ändern, dann must Du Deine SW so ändern, dass das nicht passiert oder Dir ein anderes Speichermedium suchen. Das es nur Konfigurationsdaten sind werde ich die beim Start von EEPROM rauslesen... Wiederreinschreiben bzw die Konfiguration on-the-fly ändern ist noch gar nicht vorgesehen... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|