mikrocontroller.net

Forum: Projekte & Code PIC Strings im Flash ablegen


Autor: MooseChecker (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

da ja immer wieder PIC's hier auftauchen und auch die User mit LCD auch 
dort zunehmen, stelle ich nun meine Lösung Texte bequem zu handlen 
(soweit es auf dem PIC möglich ist) hier rein.

Sicherlich hat es schon so manchen genervt, die Character einzeln mit 
< movlw  'A' >  zu laden. Sollte dem so sein, bietet dieses Beispiel 
bestimmt eine Lösung.

Die Texte sind im Flash durch die Source abgelegt und werden durch einen 
16Bit-Zeiger, der auf einen String zeigt, in einen RAM-Buffer (z.B. 
LCDBUFFER oder UARTBUFFER) geladen. Dort steht der String dann zur 
weiteren Verarbeitung bereit.

MooseChecker

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Text könnte man auch mit DA im Speicher ablegen. Dabei werden die 
einzelnen ASCII-Zeichen im 7-Bit Format abgespeichert und man benötigt 
für zwei ASCII-Zeichen nur ein WORD im Programmspeicher.

Noch ein kleiner Tipp: Bei den 18Fxx werden mit DE deklarierte Werte im 
EEPROM und nicht an der aktuellen Programmspeicheradresse abgelegt.

MfG
Steffen

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das bei PIC's nicht Platzverschwendung? Die haben doch im Flash eine 
krumme Worbreite von 12 oder 14 Bit. Da muß man doch für ein Zeichen 
(Byte) ein komplettes Wort (12 oder 14 Bit) opfern. Oder ist das bei den 
neuesten mittlerweile behoben?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, bei den 14-Bit-Pic´s lassen sich Texte mit DA .... als 7-Bit 
ASCII speichern also 2 Zeichen pro Word. Funktionieren tut das aber nur 
mit den PIC´s, die ihren Programmspeicher auch lesen können also z.B. 
mit der 16F87x Serie. Mit einem 16f62x funktioniert das nicht. Da muss 
ich auf RETLW XX -Folgen zurückgreifen also ein Zeichen pro Word.

MfG
Steffen

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.