Forum: Compiler & IDEs unvorhersehbare effekte beim eeprom beschreiben


von Markus R. (Firma: tu wien) (specht)


Angehängte Dateien:

Lesenswert?

hallo,
ich hab ein problem mit dem beschreiben des eeproms im atmega16
im anhang hab ich einfach mal das ganze c file mitgepostet.
das problem ist folgendes: wenn ich die zeile 119 wegkommentiere dann 
funktioniert das programm problemlos, bis aufs eeprom beschreiben.
wenn die zeile aber nicht kommentiert ist, dann macht der controller 
irgendetwas undefinierbares.
die funktion write_2bytes_to_eeprom(address, max_rpm); selbst 
funktioniert eigentlich, aber nur nicht in dem programm.
wenn ich in dieser funktion den teil weglasse, wo das 2. byte ins eeprom 
geschrieben wird, funktionierts auch, nur dass eben nicht der gesamte 
wert gespeichert ist.
ich bin mittlerweile echt ratlos.
wäre nett wenn mir irgendwer einen hinweis geben könnte.

mfg markus

von Klaus W. (mfgkw)


Lesenswert?

Du rufst aus einem Interrupt heraus cli() und sei() auf, wenn
ich das richtig sehe; geht das gut?
Wenn das Schreiben lange genug dauert, wird mit einem sei() der
Interrupt selbst wieder unterbrechbar.

von Klaus F. (kfalser)


Lesenswert?

Ich glaube auch nicht, dass es eine so gute Idee ist, das EEPROM aus der 
ISR heraus zu beschreiben, weil die Schreibzyklen eher länger dauern.
Abgesehen davon, dass Du damit laufend das EEPROM beschreibst, und das 
hat nur eine begrenzte Anzahl von Schreibzyklen. Der Prozessor hat damit 
nur einen geringe Lebenserwartung.

von Markus R. (Firma: tu wien) (specht)


Lesenswert?

guten morgen
danke für die schnellen antworten.
am cli und sei hats wohl gelegen. darauf hätt ich ja fast selber kommen 
können.
habs jetzt aus dem ISR raus genommen und nach ein paar versuchen hats 
jetzt auch endlich geklappt.
danke nochmal und noch einen schönen tag

mfg markus

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.