www.mikrocontroller.net

Forum: Compiler & IDEs unvorhersehbare effekte beim eeprom beschreiben


Autor: Markus Reinprecht (Firma: tu wien) (specht)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Reinprecht (Firma: tu wien) (specht)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.