Forum: Mikrocontroller und Digitale Elektronik Variablenausgabe auf GLCD


von Gast (Gast)


Lesenswert?

Ich besitze ein GLCD mit ks0108 128*64

habe auch schon die bibliotheken aus dem Forum hier verwendet:

#include "ks0108.h"
#include "ks0108.c"
#include "font12x16.h"
#include "font6x8.h"

leider kann ich damit keine Variablen ausgeben nur einen string, aus dem 
Progmem


-->

const char pgmString[] PROGMEM = "hallowelt";

kann mir jmd sagen wie ich diesen typ verstehen kann, weiss nur das 
"hallowelt" im nicht flüchtigen speicher liegt.

Danke

von Gast (Gast)


Lesenswert?

kann keiner helfen?

von Andreas K. (a-k)


Lesenswert?

Hast du mal daran gedacht, welchen Aufwand man als Leser betreiben muss, 
um diese Frage zu beantworten? Das fängt damit an, im Forum rumzusuchen, 
welche Files du dafür verwendest.

Der String liegt übrigens so im Flash, nicht im RAM. Da der AVR (wird 
wohl einer sein, aber auch diese Info fehlt) darauf nicht in gleicher 
Weise zugreifen kann, muss es eine Funktion geben, die mit der 
Flash-Adresse des Strings etwas anfangen kann.

von Maxx (Gast)


Lesenswert?

Wenn Du genug FLASH und RAM hast, ist "sprintf" Dein Freund.

von Teplotaxl X. (t3plot4x1)


Lesenswert?

Aber nicht bei GLCDs ;) Nur bei HD44780 (kP wie die heißen) kompatiblen 
LCDs

von Gast (Gast)


Lesenswert?

könnt ihr mir vllt wenigstens nähere infos zu diesem progmem gebe? warum 
kann ich da nur konstanten reinschreiben? weil zur laufzeit die 
variablen schon festsetehen müssen?


sprintf habe ich schon probiert:


ks0108Init();
ks0108GotoXY(0,4);
fdevopen(ks0108PutChar,Null, 0);
printf_P(PSTR("Variable: %d"), z);


habe ich hier ausm forum aber er meckert an den 3 parametern rum und 
will nur 2 haben.

von Simon K. (simon) Benutzerseite


Lesenswert?

Gast wrote:
> habe ich hier ausm forum aber er meckert an den 3 parametern rum und
> will nur 2 haben.

Bloß nicht zu viele Informationen oder genaue Fehlermeldungen. Du 
könntest ja die Forummitglieder überfordern.

von Maxx (Gast)


Lesenswert?

>Aber nicht bei GLCDs ;) Nur bei HD44780 (kP wie die heißen) kompatiblen
>LCDs
Wenn Du einen String augeben kannst, warum sollte dann sprintf nicht auf 
GLCDs funktionieren?
1
unsigned char temp[25];
2
3
char a = 55; // nur als Beispiel
4
int b  = 5000;
5
6
sprintf(&temp0],"a:%02XH b:%05u",a,b);
7
... hier die Funktion aufrufen, die sonst den String ausgibt...

Ergebnis ist "a:37H b:05000", was dann bei &temp steht und mit NULL 
endet.

von Marco M. (marco1987)


Lesenswert?

> ... hier die Funktion aufrufen, die sonst den String ausgibt...
> [/c]
>
> Ergebnis ist "a:37H b:05000", was dann bei &temp steht und mit NULL
> endet.


kannst du die Zeilen nochmal etwas ausführlicher beschreiben was soll 
ich denn jetzt mit der string funktion, die gibt mir doch nur ein string 
aus und die variable temo kann ich doch nicht ausgeben lassen. is ja 
halt nur ein string. bitte um hilfe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.