Hallo, Das LCD ILI9325 habe ich schon richtig konfiguriert, ich kann jetzt aber nur String auf dem LCD schreiben wie im folgenden: /** * \param ul_x: X coordinate of string top left corner * \param ul_y: Y coordinate of string top right corner * \param p_str String to display */ void ili9325_draw_string(uint32_t ul_x, uint32_t ul_y, const uint8_t *p_str); z.B. für ili9325_draw_string(uint32_t ul_x, uint32_t ul_y, (uint8_t*)"hallo") wird das wort hallo auf der definierten Lage dargestellt. Mein Problem ist, wie die ausgerechnete Variable auf dem LCD darzustellen kann. Vielen Dank für jede Antwort
dafür wird die Variable in einen String umgewandelt und in einem Buffer zwischengespeichert. Dann wird der String aus dem Buffer ausgegeben. Da gibt es bestimmt eine Funktion einen Buffer auszugeben.
Dein Problem hat nichts mit dem LCD zu tun. Falscher Titel. Vielmehr fehlt Dir die Information, auf welche Weise eine integer- oder float-Variable als String dargestellt werden kann. Dazu schau mal unter: utoa, itoa und (s)printf (genauer: unter den format specifiern).
ich schrieb: > dafür wird die Variable in einen String umgewandelt und in einem Buffer > zwischengespeichert. Dann wird der String aus dem Buffer ausgegeben. > > Da gibt es bestimmt eine Funktion einen Buffer auszugeben. Hallo, Danke für deine Antwort. Wie kann eine Variable in String umgewandelt werdn? Ich hatte durch Array und Pointer probiert, aber geht nur für String. z.B. uint8_t i; uint8_t testdata[4]= "1001"; char *p_str = testdata; for (i=0; i<4; i++) { p_str = testdata[i]; lcd_draw_string(ul_x, ul_y, &p_str); } so wird 1001 dargestellt, und wenn ich eine Variable 1001 darstellen möchte, wie kann ich die umwandeln?
Xiaotang Zhou schrieb: > Wie kann eine Variable in String umgewandelt werdn? Indem du eine der Funktionen benutzt, die dir zb aus einem int einen String erzeugen
1 | void lcd_draw_int( uint32_t ul_x, uint32_t ul_y, int value ) |
2 | {
|
3 | char txt[12]; |
4 | |
5 | itoa( value, txt, 10 ); |
6 | lcd_draw_string( ul_x, ul_y, txt ); |
7 | }
|
8 | |
9 | ...
|
10 | lcd_draw_int( 10, 10, 128 ); |
11 | |
12 | int i = 1001; |
13 | lcd_draw_int( 10, 10, i ); |
14 | ...
|
Näheres zu den Funktionen itoa, ltoa, utoa, ... weiß den C Buch PS: Bist du sicher, dass du für die Bildschirmkoordinaten einen uint32_t benutzen willst? Der Zahlenbereich eines uint32_t ist so dermassen groß, dass es wohl im ganzen Universum keinen Bildschirm mit einer derartig hohen Auflösung geben dürfte.
Karl Heinz schrieb: > Xiaotang Zhou schrieb: > >> Wie kann eine Variable in String umgewandelt werdn? > > Indem du eine der Funktionen benutzt, die dir zb aus einem int einen > String erzeugen > >
1 | > void lcd_draw_int( uint32_t ul_x, uint32_t ul_y, int value ) |
2 | > { |
3 | > char txt[12]; |
4 | >
|
5 | > itoa( value, txt, 10 ); |
6 | > lcd_draw_string( ul_x, ul_y, txt ); |
7 | > } |
8 | >
|
9 | > ... |
10 | > lcd_draw_int( 10, 10, 128 ); |
11 | >
|
12 | > int i = 1001; |
13 | > lcd_draw_int( 10, 10, i ); |
14 | > ... |
15 | >
|
> > Näheres zu den Funktionen itoa, ltoa, utoa, ... weiß den C Buch > > PS: Bist du sicher, dass du für die Bildschirmkoordinaten einen uint32_t > benutzen willst? Der Zahlenbereich eines uint32_t ist so dermassen groß, > dass es wohl im ganzen Universum keinen Bildschirm mit einer derartig > hohen Auflösung geben dürfte. Hallo Danke für deine Antwort, ich bin noch anfanger, deswegen einige Vorkenntnisse kenne ich noch nicht. Ich hatte gerade durch andere Methode realisiert. z.B für eine Variable uint32_t data = 25: 2 und 5 werden jeweils in dem Array gepeichert durch testdata[0] = data % 10 + '0'; testdata[1] = data / 10 + '0'; es funktioniert, mit '0' wird jedes Zahl in String umgewandelt.
Karl Heinz schrieb: > ... > Näheres zu den Funktionen itoa, ltoa, utoa, ... weiß den C Buch > > ... Ich würde sogar sagen, dass ein C-Buch die Informationen über itoa, ltoa, utoa und printf enthält.
Xiaotang Zhou schrieb: > Danke für deine Antwort, ich bin noch anfanger, deswegen einige > Vorkenntnisse kenne ich noch nicht. Gerade als Anfänger benötigst du ein C-Buch! Da sind all diese Dinge, und noch viele mehr, beschrieben. Es gibt keine Entschuldigung dafür, kein Buch zu haben. > es funktioniert, mit '0' wird jedes Zahl in String umgewandelt. Etwas anderes machen die Funktionen itoa, utoa und wie sie alle heißen auch nicht. Nur dass sie mit beliebigen Zahlen im Wertebereich des jeweiligen Datenytps klarkommen und dann auch noch, wenn anwendbar, ein mögliches Vorzeichen berücksichtigen. Es gibt eine Reihe von Funktionen in jeder C Bibliothek, die man einfach kennen muss. Man kann sich die natürlich immer auch selbst machen, nur ist das in vielen Fällen nicht besonders sinnvoll.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.