mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 18F EEPROM in Assembler vordefinieren


Autor: Tobi D. (fanti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hiho zusammen,
ich habe ein Problem mit der EEPROM Programmierung in Assembler für den 
PIC18f2550, evtl auch nur ein Verständnisproblem und hoffe mir kann 
einer behilflich sein.

bevor ihr mich direkt in der luft zerreißt, weil ich den 18er in 
Assembler beschrieben möchte, ich möchte ein komplexes Programm von 
einem 16er pic auf einen 18er übertragen.

das Schreiben und Lesen im Programmablauf funktioniert ohne Probleme 
auch jeweils die richtigen (erwarteten) Adressen, allerdings möchte ich 
im Assembler Programm schon Grundwerte in das EEPROM mit rein brennen 
und da gibts Probleme.

definiert habe ich die Daten im Programm wie folgt:

 org 0xF00000
        de 0x53    ;Adresse  00
        de 0x45    ;Adresse  01
        de 0x54    ;Adresse  02
...

wenn ich mir die zu brennenden Daten im Brennprogramm anschaue, sieht es 
leider so aus:
53 00 45 00 54 00

und nicht wie gewollt:
53 45 54


das hat beim 16er pic auch wunderbar funktioniert, allerdings hat der 
18er pic eine andere Programmcounter Architektur, auf Gund der 16 Bit 
Befehlsbreite, ich denke da liegt das Problem und die er schreibt für 
jede Zeile 16 Bit ins EEPROM und nicht nur den eigentlich geforderten 8 
Bit Wert, somit stimmen die Adressierungen der Werte nicht mehr.

jemand eine Idee?

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch es mal so, Code als reloctable angeben.


 org  0xF00000

packed code_pack 0xF00000  ; (reloctable code !)


EE_hysterese    db  .7
EE_hyst_time    db  .30

...

Holger

Autor: Tobi D. (fanti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo holger,

ich habs eben ausprobiert, allerdings meckert beim build der Linker und 
mag die org-Adresse nicht

so richtig verstehe ich nicht, was er von mir möchte


irgendwie verwirrend, was sollte es für einen Sinn machen, dass ich die 
einzelnen EEPROM Zellen  durch direkte Adressierung im Programm lesen 
und beschreiben kann, aber im Assemblerfile die einzelnen Zellen nicht 
ohne weiteres beschreibbar sind

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab meine Projekte alle mit MPLAB so angelegt und er tut es.
Hatte beim Umstieg von 16F auch das gleiche Problem.
Über den Wizard reloctable auswählen (man kann das nachträglich ändern, 
hab es jetzt aber nicht gefunden) und dann so wie oben angegeben.
Bei Bedarf kann ich dir mal ein abgespecktes Projekt senden.

Holger

Autor: Tobi D. (fanti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm ok

danke für das Angebot, aber das relocable erzeugt wieder neue Probleme 
bei mir mit dem Linker, wahrscheinlich durch unsaubere Programmierung

ich werde die EEPROM Adressen so abändern dass immer nur jede 2. 
abgefragt wird, zwar auch kein guter Programmierstil aber sollte 
funktionieren, klingt zu mindest einfacher als das ganze Programm wieder 
auseinander zu nehmen

trotzdem danke für die Hilfe holger

Autor: Holger W. (holgerw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, wie du magst.
Alternativ im Programm eine Routine einfügen, die die Werte schreibt 
beim allerersten Start.

Holger

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.