Forum: Mikrocontroller und Digitale Elektronik Ausgabe eines Wertes beim EA TFT 32 Display


von Mark (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Gemeinde
ich möchte mit dem Display TFT 32 von EA einen Text ausgeben. Das klappt 
damit sehr gut:
1
TFT32_Auswahl_Font(6);                    // Font einstellen Z + F - 1 - 6
2
  TFT32_Font_Zoom(3, 3);                    // Font Zoom x=1-8 y=1-8 Z + Z
3
  TFT32_Auswahl_Textfarben(12, 6);              // Textfarben einstellen 1-32 Vor ,Hinter F + Z
4
  TFT32_Text_ausgabe_L(0,37,50 , "Ende");            // x1a= 0 oder 1, x2b=0-255, y1=0-239
die Ausführung erfolgt damit
1
 void TFT32_Text_ausgabe_Z(int16_t x1a, int16_t x1b, int16_t y1, char * Text)
2
  {
3
    int8_t e;
4
    e = 0;
5
    int16_t bcc,i;
6
    bcc = DC1 + 0x08 + ESC + NUL + 'Z' + 'C' + x1a + x1b + y1 + strlen(Text);
7
    for (i=0; i<=strlen(Text); i++)
8
    bcc += Text[i];
9
    i2c_start(slave_adresse_1);
10
    i2c_write(DC1);
11
    i2c_write(0x08 + strlen(Text));  // len 0x06+Text
12
    i2c_write(ESC);
13
    i2c_write('Z');    // Z
14
    i2c_write('C');    // C
15
    i2c_write(x1b);
16
    i2c_write(x1a);
17
    i2c_write(y1);
18
    i2c_write(y1 >> 8);
19
    for (i=0; i<=strlen(Text); i++)
20
    i2c_write(Text[i]);
21
    i2c_write(bcc);
22
    i2c_stop();
23
    _delay_us(40);
24
    i2c_start(slave_adresse_2);
25
    e = i2c_readAck();
26
    i2c_stop();
27
    //itoa( e, Buffer, 10 );
28
    //lcd_printlc(3,5,Buffer);
29
    _delay_us(20);
30
  }
Möchte damit einen Wert ausgeben der vorher festgelegt wird oder den ich 
im Programm ändere. So z.B.:
1
// Ausgabe des Zählwertes
2
  uint8_t wert = 3;
3
  TFT32_Auswahl_Font(5);                    // Font einstellen Z + F - 1 - 6
4
  TFT32_Font_Zoom(3, 3);                    // Font Zoom x=1-8 y=1-8 Z + Z
5
  TFT32_Auswahl_Textfarben(12, 6);              // Textfarben einstellen 1-32 Vor ,Hinter F + Z
6
  
7
  TFT32_Text_ausgabe_L(1,10,185 , wert);            // x1a= 0 oder 1, x2b=0-255, y1=0-239
Möchte den "wert" ausgeben der soll zwischen 0 und 5 liegen
Vom Hersteller ist im Datenblatt dazu etwas angegeben. Habe die Angabe 
mal als Bild angehängt.
Hat jemand eine Idee wie ich das machen kann?
Arbeite mit C und dem Atmega 128

: Verschoben durch User
von René H. (Gast)


Lesenswert?

Naja, Deine Funktion will einen char*, wert ist aber uint8_t.

sprintf sollte Dein Problem lösen.

e.g.
1
    char wertStr[8];
2
    sprintf (wertStr, %u, wert);
3
    
4
    TFT32_Text_ausgabe_L(1,10,185 , wertStr);

Grüsse,
René

von Mark (Gast)


Lesenswert?

leider klappt das nicht. da stimmt was mit den Var nicht

von Mark (Gast)


Lesenswert?

Habe es so erst mal gemacht. Leider bekomme ich nicht die 3 angezeigt 
sondern 6 Warum?
1
uint8_t wert = 3;
2
  itoa( wert, Buffer, 10 );
3
  
4
  TFT32_Auswahl_Font(5);                    // Font einstellen Z + F - 1 - 6
5
  TFT32_Font_Zoom(3, 3);                    // Font Zoom x=1-8 y=1-8 Z + Z
6
  TFT32_Auswahl_Textfarben(12, 6);              // Textfarben einstellen 1-32 Vor ,Hinter F + Z
7
  TFT32_Text_ausgabe_L(1,10,185 , Buffer);            // x1a= 0 oder 1, x2b=0-255, y1=0-239

von René H. (Gast)


Lesenswert?

Mark schrieb:
> leider klappt das nicht. da stimmt was mit den Var nicht

WAS klappt nicht? Fehlermeldung? Kommt nicht?

von Mark (Gast)


Lesenswert?

Es kommt keine Fehlermeldung, es wir eine 6 auf dem Display angezeigt 
obwohl ich wert = 3 angegeben habe

von René H. (Gast)


Lesenswert?

René H. schrieb:
> Mark schrieb:
>> leider klappt das nicht. da stimmt was mit den Var nicht
>
> WAS klappt nicht? Fehlermeldung? Kommt nicht?

Was ist an meiner Frage nicht zu verstehen? Was klappt bei meinem 
Vorschlag nicht?

von Mark (Gast)


Lesenswert?

Bei deinem Vorschlag gibt es Fehlermeldung mit dem Typ der Variablen

von René H. (Gast)


Lesenswert?

Mark schrieb:
> Bei deinem Vorschlag gibt es Fehlermeldung mit dem Typ der Variablen

Kannst Du die vielleicht auch noch hier reinschreiben? Muss man dir 
wirklich alles aus der Nase ziehen?

von Mark (Gast)


Lesenswert?

Das sind die Fehler die angeben wurden
Severity  Code  Description  Project  File  Line  Source
Error    stray '\204' in program  ATB Spiel Pong Prg1  D:\AAA 
Technik\Programme AVR Studio\ATB Spiel Pong Prg1\ATB Spiel Pong 
Prg1\ATB_Spiel_Pong_Prg1.c  234  Build
Error    expected expression before '%' token  ATB Spiel Pong Prg1 
D:\AAA Technik\Programme AVR Studio\ATB Spiel Pong Prg1\ATB Spiel Pong 
Prg1\ATB_Spiel_Pong_Prg1.c  234  Build
Error    stray '\223' in program  ATB Spiel Pong Prg1  D:\AAA 
Technik\Programme AVR Studio\ATB Spiel Pong Prg1\ATB Spiel Pong 
Prg1\ATB_Spiel_Pong_Prg1.c  234  Build
Error    recipe for target 'ATB_Spiel_Pong_Prg1.o' failed  ATB Spiel 
Pong Prg1  D:\AAA Technik\Programme AVR Studio\ATB Spiel Pong Prg1\ATB 
Spiel Pong Prg1\Debug\Makefile  91  Build

von René H. (Gast)


Lesenswert?

Zeig mal den Code. Vorallem das sprintf.

von Mark (Gast)


Lesenswert?

Konnte das Problem lösen. In einem anderen Teil des Programmes verwende 
ich ebenfalls Buffer zur Anzeige einer Prüfsumme beim Auslesen eines 
Rückgabe Wertes auf einem zweiten Display. Hatte den Wert zwar gelöscht 
aber irgendwie hat er sich eingemogelt. Es geht jetzt.
Das volle Programm kann ich hier kaum zeigen da es aus ca 1000 Zeilen 
besteht und mehrere Bibliotheken hat. Es dient zur Anzeige auf einem EA 
TFT 3,2 Zoll Display mit einer übertragung über den I2C Bus
Danke für deine Hilfe

mark

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.