Problem mit CODEVISION_AVR

Gast #303196
Lesenswert?

Guten Abend,

ich habe mir für mein T6963 Display eine weitere FUnktion in CodeVision
AVR programmiert. Ich habe da Probleme eine Integer Zahl auf dem Display
darzustellen. Auf dem Display sollte erstaml ZAHL=19385 erscheinen.
Leider sehe ich da nir die Zahlen 98.
Wo ist da der Haken?

int flash zahl_buffer[20];

void lcd_test(unsigned int x, unsigned int y)
{
 unsigned int address,i=0;
 sprintf(zahl_buffer,"ZAHL=%6d",19385);


 address = ((unsigned int)y * 22) + x + 0x1000;

 out(0x24,address & 0xff,address >> 8);
 for (i=0; zahl_buffer[i]; i++)
  {
   out(0xC0, 0, zahl_buffer[i]-0x20);
  }
}

Wenn diese Funktion ausführe, dann erscheint auf dem Display nicht
exakt "ZAHL=19385 sondern nur jedes zweite Zeichen
"ZH=135". Wie kann dass denn sein?
Gast #303199
Lesenswert?

Wenn ich es so mache, dann erscheint mal zumindest DEZ:234.
So un nu, wie mache ich die mit einer Float oder Int variable?

char zahl_buffer[20];
char flash format[10];

void lcd_test(unsigned int x, unsigned int y, unsigned char flash
*format)
{
 unsigned int address,i=0;
 sprintf(zahl_buffer,format,234);


 address = ((unsigned int)y * 22) + x + 0x1000;

 out(0x24,address & 0xff,address >> 8);
 for (i=0; zahl_buffer[i]; i++)
  {
   out(0xC0, 0, zahl_buffer[i]-0x20);
  }
}

lcd_test(0,0,"DEZ:%6d");

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren