PROGMEM Problem

Gast #432710
Hallo Leute,
ich definiere eine char Konstante im Flash:

char StringImFlash[] PROGMEM = "Waehlen Sie bitte einen Modus aus";

diese Konstante will ich dann zum richtigen Zeitpunkt im Hauptprogramm 
mit der Funktion sende_string per Terminal ausgeben:

sende_string(StringImFlash);

Die Funktion sende_string befindet sich im Anhang.
Wie kann ich die Konstante aus dem Flash ansprechen?
MFG
Angehängte Dateien:
Gast
Ist doch ganz einfach: Du kannst nicht auf Daten, die im Flash stehen 
wie auf Daten zugreifen, die im RAM stehen.
Für den Flash-Zugriff brauchst du "pgm_read_byte(...)".

>Ich habe das AVR GCC Tutorial durchgesen und verstehe nur Bahnhof!
Dann übernimm einfach Rufus Lösung!
Gast
Die Lösung von Rufus funktioniert nicht. Terminalprogramm gibt kommische 
Zeichen aus.
@inoffizieller WM-Rahul : mit dem Befehl "pgm_read_byte(...)" wird doch 
nur ein Byte gelesen. Ich will aber char text ausgeben.
MFG
Gast
>Ich will aber char text ausgeben.
Das ist auch nichts anderes als eine Ansammlung von Bytes...

>Hat denn das Senden von Zeichen überhaupt schon mal funktioniert?
Das würde mich auch interessieren.
Gast
@Rufus: Vielen Dank es funktioniert!
Die komischen Zeichen entstehen dadurch da ich die anderen 
Char-Variablen aus dem RAM geladen habe! Super! Vielen Dank! Jetzt 
verstehe ich auch wie die sende_string-funktion funktioniert!
Oft ist es so dass man Sätze liest und diese nicht gleich versteht. Da 
kann man noch tausend Mal lesen! Da bringen Beispiele viel mehr!
Da ich nicht der einzige bin!
Habt ihr Euch schon mal überlegt dieses Thema im AVRGCC Tutorium 
ausweiten und mit viel mehr Beispielen beschreiben?
Na ja.
Das Tutorial geht schon davon aus, dass man einen gewissen
C-Grundstock hat. Das Tutorial konzentriert sich hauptsächlich
auf die Unterschiede und spezifischen Erweiterungen, die man
zur Programmierung eines AVR braucht. C sollte man da schon
halbwegs können um mit dem Tuorial was anfangen zu können.

Aber der Vorschlag an sich ist nicht so schlecht. Ich werde
mal eine UART-Sende Funktion in den entsprechenden Abschnitt
einfügen.
Gast
>Habt ihr Euch schon mal überlegt dieses Thema im AVRGCC Tutorium
>ausweiten und mit viel mehr Beispielen beschreiben?

Da es ein Wiki ist, kannst du das auch machen...("wir" wissen ja meist 
wie es geht...)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.