www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: Speichern im Flash


Autor: the_devil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Frage: möchte in einem Projekt (geschrieben in C für atmega8 auf 
codevision avr c compiler) werte, die ich per taster verstellen kann, 
zurückschreiben in den Flash, damit ich sie nach ein- und ausschalten 
wieder zur verfügung habe;
d.h. Wert sw_tmax=30 (vordefiniert im programm, ich glaub als unsigned 
int) verstelle ich im programm per taster auf 25; danach schalte ich spg 
ab; nach dem einschalten möchte ich wieder die 25 haben, und nicht die 
vordefinierten 30!

ist das überhaupt möglich, und wenn ja, wie in etwa???

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm lieber das EEPROM dafür.
FLASH würde vermutlich auch gehen, dürfte aber anstrengender werden.

Autor: the_devil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja...

...geht das mit diesen speicherbefehlen, welche auch im tutorial 
beschrieben werden????

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>...geht das mit diesen speicherbefehlen, welche auch im tutorial
>beschrieben werden????

Im Tutorium sind die Befehle für den WinAVR beschrieben - wie die beim 
CAVR heissen, sollte sich durch dessen Doku feststellen lassen.
Sonst ist der Ablauf auch im Datenblatt beschrieben.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flash schreiben geht grundsätzlich nur aus der Boot-Section des Flash. 
Wenn etwas gespeichert werden soll, muss eine Boot-Section definiert 
werden und alle Funktionen, die ins Flash schreiben sollen, müssen in 
dieser Section liegen.

Für Werte, die nach Abschaltung erhalten bleiben sollen, die aber auch 
verändert werden sollen, ist das EEPROM eigentlich die einzig 
vernünftige Lösung, vorausgesetzt, die Größe reicht aus.

Autor: mbuchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich arbeite gerade an einem projekt, für das das SRAM des mega128 niht 
ausreicht - ist es möglich daten zur laufzeit ähnlich wie normale 
variablen im flash zu speichern?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
prinzipiell ja, praktisch kaum. Nimm den EEPROM, achte aber drauf, dass 
das keine Variablen sind, die häufig geschrieben/gelesen werden.
In erster Linie würde ich aber mal in Richtung Programmoptimierung 
nachdenken, da lässt sich meist viel machen.

Autor: mbuchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider ist das nicht möglich, wie gesagt der programmspeicher reicht 
völlig aus, nur der datenspeicher ist zu klein. Ich muss zur Laufzeit ca 
16kb messdaten speichern - der mega128 hat leider nur 8k sram.
hat vlt schon mal jemand sowas in codevision avr gemacht?

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Ich muss zur Laufzeit ca 16kb messdaten speichern...

Wenn das mit den 16kB Meßdaten vorher bereits klar war,
dann hast du schlichtweg für Dein Projekt den falschen Controller
ausgesucht, oder?

Bleibt in diesem Falle nur noch ein ext. SRAM an den Bus zu hängen,
falls die Hardware noch nicht in Stein gemeißelt ist.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie oft schreibst du denn deine Daten? Es geht ziemlich schnell, dass 
dann der Flash hinüber ist...
Bastel dir ein FRAM an den MC (FM25256 als SPI-Variante oder FM24C256 
I2C), macht 32kB rel. schnellen Speicher, der nicht ermüdet.
Ansonsten: schlechte Planung - das war doch vorher absehbar? 
Prozessorwechsel auf einen mit Interface für ext. RAM?

Autor: mbuchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der mega128 hat ja ein interface für ext. ram - ich wollte nur den platz 
dafür sparen - aber naja - ich kenne leider keien avr 8 bit risc, der 
mehr als 8kb ram hat.

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Zugriff auf die Daten nicht allzu fix vonstatten gehen 
muss,könnte man ja auch ein serielles Flash dranhängen.Ein paar Pins für 
den SPI (falls die der Hardware schon verstrickt wurden) sollten doch 
immer noch frei sein...

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.