const unsigned char digole[] PROGMEM =

Gast #5959719
void hilfe_Digole()
 {

const unsigned char digole[] PROGMEM = {
'C','L','E','D','P',25,30,'T','T','H','A','L','L','E',0};


for (uint8_t i=0;  i<15; i++)
{
  char wert=digole[ i];
 // uint8_t wert=digole[ i];
  mySerial.print(wert);
  Serial.print("wert");
  Serial.println(wert,DEC);
  }
   mySerial.write(End0);

  delay(2000);

 mySerial.print("CLETP");
//mySerial.print(25);mySerial.print(30);
 mySerial.write(25);mySerial.write(30);

 mySerial.print("TTHALLE");
 mySerial.write(End0);
  delay(2000);
}


Wollte jetzt erstmals mit einen Arduino das Serielle UART Display 
ansteuer.
Dieses Prog wird wird nur zum Test nachdem das Display schon arbeitet ,
aufgerufen.
Mich interessiert hier nur warum die Zeilen und spalten Aufrufe nicht 
ausgeführt werden, wenn aus dem Array gelesen wird.
Der Text wird immer im Display links oben angezeigt.
z.Z. habe ich auch nicht die Möglichkeit myseriel.print zur Kontrolle 
mitzu lesen
Gast
char wert=digole[ i];
 // uint8_t wert=digole[ i];
  mySerial.print(wert);
  Serial.print("wert");
  Serial.println(wert,DEC);

Mit dem Monitor werden Spalte und Zeile aber richtig ausgegeben!
nur Dieser Befehl mySerial.print(wert); wird scheinbar nicht  richtig 
ausgeführt.
Fritz schrieb:
> void hilfe_Digole()
>  {
>
> const unsigned char digole[] PROGMEM = {
> 'C','L','E','D','P',25,30,'T','T','H','A','L','L','E',0};

Schon mal was von Strings gehört?
1
const unsigned char digole[] PROGMEM = {
2
 "CLEDP" "\x19" "\x1E" "'TTHALLE"};

Die abschließende '0' ergänzt der Compiler automatisch. Das Zauberwort 
lautet Escape Sequence, damit kann man HEX-Zahlen direkt in einen String 
packen.
1
char wert=digole[ i];

Das geht so nicht. Auf PROGMEM-Variablen muss man anders zugreifen.

https://www.arduino.cc/reference/en/language/variables/utilities/progmem/
Fritz schrieb:
> const unsigned char digole[] PROGMEM = {
> 'C','L','E','D','P',25,30,'T','T','H','A','L','L','E',0};
>
> for (uint8_t i=0;  i<15; i++)
> {
>   char wert=digole[ i];

Hm... Array mit PROGMEM, aber Zugang zu Array wie zu RAM?

Dann sollte man statt PROGMEM anders schreiben:
const __flash unsigned char digole[] = {
Gast
Falk B. schrieb:
> char wert=digole[ i];
>Das geht so nicht. Auf PROGMEM-Variablen muss man anders zugreifen.

ich habe aber jetzt alles richtig auslesen können.
Mir geht es auch nur darum die Befehle und Daten aus den Array zu lesen 
und zum seriellen Display zu schicken.
...-und das geht erst mal jetzt.Hatte nur in einen Befehl einen Fehler!
Gast
Nico W. schrieb:
> Arduino nutzt den C++ Compiler. Der kennt leider kein __flash.

Ihr seid verwirrt!

Arduino kann auf der C++ Seite natürlich kein __flash.
Allerdings kann einen keiner daran hindern C Dateien einzubinden, und 
dann tuts das natürlich schon, im Rahmen dessen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 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.