mikrocontroller.net

Forum: Compiler & IDEs Texte für LCD ablegen


Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich habe mal wieder ein Frage über die wir vielleicht wieder mal ein
bißchen Diskutieren können.. ;o)

Ich möchte Texte, bzw. "Strings" für ein LCD ablegen und z.B. über
eine ID den String an mein LCD senden! Wie würdet Ihr das machen? Also
ich habe mir zwei Möglichkeiten überlegt:

Die erste Variante wäre über ein Array in dem ich die Strings ablege
und  die Arrays in unterschiedliche Kathegoerien einteile (Error, ...,
usw.) dann könnte ich die Strings über einen Errorcode der als Offset
für einen Pointer dient benutzen.

Wobei ich die zweite Variante besser finden würde...:

#define ERROR_1  "Motor überhitzt"
#define ERROR_2  "Endlage nicht erreicht"

Welche Variante würdet Ihr anwenden??

Gruß
Benjamin

Autor: Magnus Müller (Magnetus) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dann würde ich die Fehlermeldungen im FLASH ablegen. Anderenfalls
müllst du dir nur das RAM zu...

Gruß,
Magnetus

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal abgesehen von der Flash-SRam Problematik:

Dir ist schon klar, dass wenn du die Texte in einem
Array ablegst du im wesentlichen 2 Möglichkeiten hast:
* ein 2D char Array
  Vorteil: leicht aufzubauen
  Nachteil: alle Texte müssen gleich lang sein. Wenn da kürzere
            Texte drin vorkommen, dann fügt der Compiler zusätzliche
            Bytes ein, nur um alle Einträge wieder gleich lang
            zu kriegen

* ein Pointer Array mit Pointer auf die eigentlichen Texte
  Vorteil: unterschiedliche Textlängen sind kein Problem und
           verbrauchen auch nicht heimlich Speicher
  Nachteil: durch die Zwischenhierarchie der Pointer zusätzlicher
            Speicherverbrauch eben durch die Pointer.
           Da alles im Flash liegen sollte, könnte es beim Zugriff
           Ärger geben, wenn man nicht aufpasst.

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmmmhhhh...., nette antworten. aber immer noch keine lösung... ihr
schreibt alle das ich probleme beim zugriff auf den flash bekommen
kann!? warum? dann dürfte mein programm auch nicht richtig laufen!? ist
doch nichts anderes als eine abfrage von daten aus dem
programmspeicher.... oder???? jetzt bin ich völlig durcheinander!!

Autor: Benjamin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso und dann ist mir ja auch noch die idee in den sinn gekommen die
daten im eeprom abzulegen... wieß zwar noch nicht wie ich das machen
soll, aber irgendwie wird das bestimmt gehen...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ihr schreibt alle das ich probleme beim zugriff auf den flash
> bekommen kann!?

Wenn du es richtig programmierst, ist das kein Problem.
Der springende Punkt ist: Der Compiler hilft dir da nicht
viel weiter.

Studier mal das AVR-GCC-Tutorial.
Ich glaube im Abschnitt 17 wars, wo die Zugriffe auf die
unterschiedlichen Speicher besprochen werden.

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.