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!