www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 78K0 Daten permanent im RAM Speichern


Autor: Tim H. (howie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgendes Problem:

Ich möchte Daten, die ich in einem Programmablauf aufgenommen habe,
nach einem Reset des Controllers (78K0, µPD78F0503) verwenden, dazu
habe ich mir einen Speicherbereich im RAM reserviert. Beim auslesen des
Speichers ist dieser aber leer, d.h. die Daten werden nicht gespeichert.
Folgendermaßen gehe ich vor:

im Linkerfile: -Z(CODE)VAR=0290-0293

in c: #pragma constseg = VAR
__root unsigned int unMess[2];

void main ()
{
.
.
unMess[0] = Messung1;
...
}
Was mach ich Falsch???

Danke.

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich kenne deinen Controller nicht, aber in aller Regel verlieren RAMs
ihren Speicherinhalt bei einem Reset.

Gruss

Michael

Autor: Tim H. (howie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

In der Tat das tun sie! Es handelt sich allerdings um ein ROM (mein
Fehler!)

Gruss

Autor: sch_michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

dieser Meinung bin ich auch, ich denke nicht das dir NEC garantiert,
dass nach einem Reset die Daten noch vorhanden sind. Ein RAM ist auch
nicht dafür gedacht Daten zu speichern. Dafür solltest du dir eher ein
EEProm in deiner Applikation zulegen.

Gruß Michael

Autor: sch_michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist zu spät,

es ist nicht möglich mit dieser Zuweisung Daten in den ROM zu
schreiben, dafür ist er nicht ausgelegt.

Gruß Michael

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal versucht, die Daten per Debugger nach nem Reset auszulesen?
Vielleicht ist ja irgendie deine Adressierung durcheinander gekommen
(was nicht sein sollte )

Autor: Tim H. (howie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sch_michael
Wie kann ich dann Daten in den ROM schreiben (während der
Programmausführung) ??? Mit der oben beschriebenen Methode wird das
Option Byte und die ID eingestellt (funktioniert), wobei diese bei der
deklaration definiert werden.

@Si02
Ja, die Daten liegen nicht auf der gewünschten Adresse, sondern werden
wie "normale" Variablen im (schätzungsweise) RAM gespeichert.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Inhalt von RAMs geht nicht mit einem Reset verloren, sondern nur bei
Stromausfall. Hier wird das RAM vermutlich vom C-Startupcode gelöscht,
ob und wie man das dem abgewöhnen kann, ist vom verwendeten Compiler
abhängig.

Ob und wie Daten vom Controller in das (Flash-)ROM des Controllers
geschrieben werden können, ist vom verwendeten Controller abhängig und
müsste im Datenblatt beschrieben sein, eventuell unter dem Stichwort
"bootloader".
Eventuell hat der Controller für diesen Zweck ja auch ein EEPROM, aber
auch hier ist dies dem Datenblatt zu entnehmen.

Autor: Tim H. (howie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit diesem Derivat können Daten nur über das Selfprogramming permanent
gespeichert werden, dazu muss der FLMD0 auf High gezogen werden, und
eine bestimmte Routine (vordefiniert von NEC) speichert die Daten
Blockweise.

Andere Möglichkeit:
Eine eeprom Emulation ebenfalls von NEC erhältlich tut das was der Name
schon sagt. Nachteil 2K Speicher werden benötigt

Danke für eure Hilfe.

Gruss Tim

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.