Hi,
mal wieder ich,....
Betr.:ATmega128, gcc
Hintergrund:
Ich habe in meinem Programm eine Zeit laufen.
Die deklaration ist folgende
1 | //Globale Variable
|
2 | unsigned long time_in_ms;
|
über den Timer 0 lasse ich diese hochlaufen...
Nun zu meiner Frage:
um diese Zeit über den uart (als ASCII) und an das LCD versenden zu
können muss ich diese in einen String konvertieren.
Ich mache das so:
1 | if( STO_Time.time_ms <= 32767)
|
2 | {
|
3 | sprintf(&LCDZ1[0], "%d", (int)STO_Time.time_ms);
|
4 | sprintf(&uart[0], "%d", (int)STO_Time.time_ms);
|
5 | }
|
6 | else
|
7 | {
|
8 | sprintf(&LCDZ1[0], "%ld", STO_Time.time_ms);
|
9 | sprintf(&uart[0], "%ld", STO_Time.time_ms);
|
10 | }
|
mein Problem,
ich möchte meine variable als unsigned long (2^32-1) konvertieren.
Im moment konvertiere ich sie jedoch als signed long.
Dadurch verkürzt sich meine Zeit (ca. 49Tage) um die hälfte.
Gibt es eine Möglichkeit, wirklich eine unsigned long zu konvertieren??
Gruß
joe