ATtiny2313 Probleme bei LCD-Ausgabe großer Zahlen

Gast #845772
Lesenswert?

Guten Abend an alle AVR- und C-Spezialisten!

Ich programmiere gerade in C mit dem AVR-Studio (+WinAVR) an einem 
ATtiny2313. Nun habe ich das Problem bei der Zahlenausgabe auf einem 
LCD, aber erst bei Zahlen ab 40000 und größer. Dabei entstehen 
Hieroglyphen in den Tausender- und Hunderter-Stellen (z.B. 4xx43). Woran 
kann das liegen? Muss man vielleicht dem Compiler noch irgendwelche 
Optionen geben?

Hier noch meine Ausgabe-Funktion für die Zahlen auf dem LCD:
1
void lcd_long(unsigned long int data)
2
{
3
  unsigned char byt;
4

5
  byt = data / 1000000;
6
  data = data - byt * 1000000;
7
  lcddata(byt + 48);
8
  byt = data / 100000;
9
  data = data - byt * 100000;
10
  lcddata(byt + 48);
11
  byt = data / 10000;
12
  data = data - byt * 10000;
13
  lcddata(byt + 48);
14
  byt = data / 1000;
15
  data = data - byt * 1000;
16
  lcddata(byt + 48);
17
  byt = data / 100;
18
  data = data - byt * 100;
19
  lcddata(byt + 48);
20
  byt = data / 10;
21
  data = data - byt * 10;
22
  lcddata(byt + 48);
23
  lcddata(data + 48);
24
}

Ich würde gerne Zahlen von 0 bis ca. 1000000 ausgeben können. Oder gibt 
es eine andere Möglichkeit dies zu tun?

Danke!
Gast #845786
Lesenswert?

>void lcd_long(unsigned long int data)

Was ist ein "unsigned long int" ?

void lcd_long(unsigned long data)

>  data = data - byt * 1000000;

  data = data - (unsigned long)byt * 1000000;

>Oder gibt es eine andere Möglichkeit dies zu tun?

sprintf() vieleicht ?

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