Forum: Mikrocontroller und Digitale Elektronik WordToStrWithZeros mit weniger Nullen (microC PRO for PIC)


von fetter_Homer (Gast)


Lesenswert?

Hi,
WordToStrWithZeros ist leider auf 5 Stellen festgelegt. Gibt es eine 
elegante Methode, mit der ich mir mehr bzw. weniger Nullen anzeigen 
lassen kann? Ich möchte nämlich eine Anzeige haben, die immer 
zweistellig ist, z. Bsp.: 00:12:03. Wenn das die aktuelle Uhrzeit ist 
und der Stundenwert Null ist, dann zeigt er nur eine Null an, was ich 
aber gerne ändern würde, aber wie mache ich das am einfachsten?

Danke und Gruß
Peter

von Ben j. (scarab)


Lesenswert?

wenn die Funktion nicht passt kannst du dir auch selber eine schreiben 
die deine Anforderungen genügt.

Um aus einer Zahl eine Ziffer(String) zum Anzeigen zumachen muss man nur 
mit '0' addieren.

also so:
1
int Zahl = 4567;
2
char String[5];
3
4
//Zahl in einzelne Stellen auftrennen (ähnlich wie BCD)
5
int z1 = (Zahl/1000) % 10; //4
6
int z2 = (Zahl/100 ) % 10; //5
7
int z3 = (Zahl/10  ) % 10; //6
8
int z4 = (Zahl     ) % 10; //7
9
10
//String bilden
11
String[0] = '0' + z1;
12
String[1] = '0' + z2;
13
String[2] = ':'     ;
14
String[3] = '0' + z3;
15
String[4] = '0' + z4;
16
String[5] = '\n';
17
//usw.

IMO geht es manchmal schneller sich was selber zu schreiben als lange zu 
googlen um dann zu merken das es doch nicht passt.

von fetter_Homer (Gast)


Lesenswert?

Wenn ich deine "Strings" jetzt auf dem LCD ausgeben möchte
1
Lcd_Out(1,1,String[0]);
, kommen leider nur kryptische Zeichen raus.
Leider gibt es auch nur die Methode ByteToHex aber nicht ByteToDec, was 
mit den Nullen, die automatisch dabei sind, perfekt wäre...

von Ben j. (scarab)


Lesenswert?

fetter_Homer schrieb:
> kommen leider nur kryptische Zeichen raus.

also zeicheN schon mal garnicht da du ja nur ein char übergibst: 
"String[0]".
Vielleicht mal "&String[0]" bsw. "String" nehmen wenn diese Funktion den 
ganzen String ausgeben soll.

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.