Hallo, Ich bin noch ein Anfänger was die Programmierung eines Atmel Xmegas betrifft. Ich möchte diesen mit der Sprache C Programmieren. Ich habe den Atmel Xmega A3BU und möchte insgesamt 4 INT Werte im EEPROM Speichern. Diese Werte lese ich von einem analogen Sensor aus und erhalte dann 4 8BIT (evtl 12 BIT) unsigned INT Werte. Ich habe im Datenblatt und auch in Foren schon viel gesucht und habe noch nicht gefunden wie ich diese Werte im EEPROM Speichern und später auslesen kann. Kann mir bitte jemand helfen wie genau ich das machen kann. Ich verwende das AVR Stuido um das Programm zu schreiben. Habe auch keine Befehle gefunden wie ich den EEPROM ansprechen kann. =(. Dankeschön
Ja, dass nen bisschen komplizierter geworden. Aber auch schöner... weil man nun 32 byte mit einem mal schreiben kann... Also allgemeines vorgehen: pagebuffer befüllen und dann den pagebuffer atomar in den eeprom schreiben... Am besten mal nen Sample aus der ASF laden und anschauen und auch in die Funktionen der ASF schauen, da bekommt man schnell mit, was gemacht werden muss... Grüße Basti
Hallo, unter: http://www.mikrocontroller.net/attachment/86742/xeeprom.h Datei xeeprom.h laden #include "xeeprom.h" int main(void) { ... EEpromInit(); eeprom_write_byte(0x00,0xff); eeprom_write_word(0x01, 0x00ff); das lesen funktioniert ebenso!! xx = eeprom_read_byte(0x00); yy = eeprom_read_word(0x01); ... Das Ganze funktioniert bestens mit einem Xmega.. Gruß G.G.
Was spricht denn gegen
1 | #include <avr/eeprom.h> |
aus der normalen avr-libc? Funktioniert bei mir auch einwandfrei mit dem Xmega. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM
dankeschön G. G. für die schnelle Antwort. kann ich eine dezimalzahl auch ganz normal hineinschreiben oder muss ich die in eine Hexzahl umwandeln? Noch dazu weiß ich nicht wie ich die datei xeeprom.h lade. Wo finde ich diese? Dankeschön
Anfänger schrieb: > dankeschön G. G. für die schnelle Antwort. > > kann ich eine dezimalzahl auch ganz normal hineinschreiben oder muss ich > die in eine Hexzahl umwandeln? Dezimal, Hex, Binär .... sind alles nur verschiedene Schreibweisen für immer dasselbe: eine Zahl Ob du 0x41 oder 65 oder 0b01000001 oder 'A' schreibst, ist völlig egal. Letzten Endes beschreibst du mit den verschiedenen Schreibweisen in allen Fällen immer dasselbe Bitmuster.
Hallo, Anfänger schrieb: > Noch dazu weiß ich nicht wie ich die Datei xeeprom.h lade. Wo finde ich > diese? hier: http://www.mikrocontroller.net/attachment/86742/xeeprom.h vom Bildschirm kopieren und eine neue Datei aufmachen. Dann speichern unter.. xeeprom.h Gruß G.G.
ich habe die alles kopiert und in eine neue Datei eingefügt und als xeeprom.h abgespeichert. nun wenn ich im AVR Studio auf Build solution gehe kommt ein Error der sagt : Error 1 implicit declaration of function 'memcpy' dieser Error ist irgendwo in der xeeprom.h datei eingebaut. Wissen Sie wie man dieses Problem lösen kann? Dankeschön
Hallo, ist das beachtet worden? Gemeinsame Verwendung von <eeprom.h> und "xeeprom.h" ist nicht getestet! Solltest du das eingebunden haben, entferne die eeprom.h in deinem Projekt. 'memcopy ' wird soweit ich das auf die Schnelle gesehen habe, nicht in der Lib verwendet. Sollte memcopy wirklich benötigt werden ist die STRING.H einzubinden #include <string.h> Gruß G.G.
Fabian O. schrieb: > Was spricht denn gegen#include <avr/eeprom.h>aus der normalen avr-libc? > > Funktioniert bei mir auch einwandfrei mit dem Xmega. > > http://www.mikrocontroller.net/articles/AVR-GCC-Tu... So mach ich das auch, ohne Probleme. Aber offensichtlich wollen die Herren das ja komplizierter haben.
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.