Hallo! Ich lese hier schon länger mit, und bisher hab ich für alles eine Lösung gefunden, aber jetzt bin ich ratlos. Mein EEPROM scheint Daten zu vergessen und ich kann mir nicht erklären warum. Es lässt sich auch keine Regelmäßigkeit feststellen, wann das passiert. Einige Variablen sind dann einfach mit wirren Werten überschrieben. Ich programmiere in C und übers AVRStudio. Was mein Programm tut hab ich mal stichpunktartig aufgelistet: - Timer1 mit CompareA+B, läuft immer für eine Software-PWM - Variablen werden beim Start aus dem EEPROM ins RAM gelesen und danach nicht mehr angerührt. (eeprom_read_word) Erst danach kommt das sei(); - Ein Array wird hin und wieder aus dem Programmspeicher gelesen (pgm_read_word) - Ein ADC-Eingang wird benutzt. - Die Schaltung wird einfach abgeschalten, dabei fällt die Spannung relativ langsam ab. - LB Lockbits sind gesetzt Weis da jemand was dazu? Bin echt ratlos. Grüße, Tobias
Wenn die Betriebsspannung abgeschaltet wird, kann, besonders bei großem Stütz-C, der Kontroller relativ lange im unteren Spannungsbereich arbeiten, wo z. B. der Programmzähler nicht mehr richtig arbeitet. Das kann dazu führen dass ungewollt am EEPROM rumprogrammiert wird. Abhilfe ist die brown-out-Technik: immer wenn die zulässige Betriebsspannung unterschritten wird, schaltet sich der Kontroller in ein Reset. Dann wird durch die Wartezeit beim Neustart des Programms ein Zugriff auf das EEPROM verhindert. Also bei Verwendung des EEPROM immer Brown-Out aktivieren. Möglichst große Start-up-Zeit einstellen.
Das scheint der Fehler gewesen zu sein. Steht sogar schön im Datenblatt drin -.- Danke!
Ich habe auch ein Problem mit dem internen EEprom beim MEGA32. Ich möchte ein WORD ins eeprom speichern. Dazu benutze ich die eeprom.h vom AVR Studio und eeprom_write_word (0x0001,2500);. Wenn ich jetzt compiliere, dann warnt der compiler mit folgender Meldung "../main.c:76: warning: passing argument 1 of 'eeprom_write_word' makes pointer from integer without a cast" Weiß jemand von euch woran das liegen könnte. Danke und Gruss
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.