Print_String für GLCD?

Gast #61586
Lesenswert?
• ▲
▼
Hi,
ich bin momentan dabei für mein Graphik-Display diverse routinen zu
schreiben. Ich hänge nun an einer Print_String routine. Die print_char
klappt prima, nun versuche ich diese mit print_string aufzurufen und
ein charakter nach dem anderen zu übergeben. Klappt jedoch leider
nicht. Das Display giebt nur eine "8" aus.
Den wichtigsten code hier: (den gesammten im dateianhang)

void print_char (int c)
{
int i;
 for(i=0; i<5; i++)
  {
  send_data(Font5x7[((c - 0x20) * 5) + i]);
  current_line ++;
  }
send_data(0x00);
current_line ++;
}

void print_string(int *text)
{
int i;
for(i=0; i<5; i++)
  {
   print_char(text[i]);
  }
}

[...]
char text[32];
[...]
text[0] ="Hallo";
set_pos(1,0);
print_string(text);

Villeicht hat jemand ne Idee und lust mir zu helfen. Danke!
Angehängte Dateien:
Gast #61587
Lesenswert?
• ▲
▼
Hallo Markus,

ich bin zwar kein profi, aber ich glaube mich noch dunkel daran
erinnern zu können, dass ein String nur bei der Definition an ein
charrakterarray übergeben werden kann. Danach muss man den String in
das char-array zeichenweise kopieren ( strcpy(); ).

Der print_string-Routine übergibst du einen Zeiger vom typ "char".
Geschrieben hast du jedoch "int". ( void print_string(char *text) )

Das müsste es eigentlich gewesen sein.

MfG Freddy
Gast #61588
Lesenswert?
• ▲
▼
So,
Ich habe nun nach langem rumprobieren eine Lösung gefunden:
void print_char (int c)
{
int i;
 for(i=0; i<5; i++)
  {
  send_data(Font5x7[((c - 0x20) * 5) + i]);
  current_line ++;
  }
send_data(0x00);
current_line ++;
}

void print_string(char *data)
{
int i,x;
x = strlen(data);

for(i=0;i<=x; i++)
  {
  print_char(*data);
  data ++;
  }
}
[..]
char text[21] = "Ein superlanger Test";
print_string(text);

Das Fuktioniert zwar, aber so ganz Glücklich binn ich noch nicht
darüber. Weiss jemand wie die lcd_putsf Funktion von CodeVision AVR
genau funktioniert? Da kann ich den string nämlich direckt mit dem
Funktionsaufruf angeben. So: lcd_putsf("Das ist ein Test");
Das hätte ich auch gerne für mein Graphik-Display, bekomm es aber nicht
hin. :-(

Antwort schreiben

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.

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.