String-Variablen zusammensetzen

Gast #1949757
Lesenswert?

Hallo,

ich bin dabei mir eine einfache Uhr mittels AVR zu realisieren.
Jetzt hab ich drei Int-Variablen, sec_int, min_int und std_int.
Diese wandele ich dann fürs LCD um.
1
dtostrf(std_int, 2, 0, buffer);
2
lcd_puts(buffer);
3
lcd_putc(':');
4
dtostrf(min_int, 2, 0, buffer);
5
lcd_puts(buffer);
6
lcd_putc(':');
7
dtostrf(sec_int, 2, 0, buffer);
8
lcd_puts(buffer);

Jetzt meine Frage: kann ich das auch erst zu nem kompletten String 
zusammenführen und dann komplett zum LCD übertragen?

Weitere Frage: ich hab jetzt ein Zeitformat von z.B. " 1: 3:54"
Gibt es einen Befehl in C, mit der ich 2 Stellen incl führender Null 
erzeugen kann???


Gruß
Jens
Gast #1949765
Lesenswert?

>dtostrf(std_int, 2, 0, buffer);
>lcd_puts(buffer);
>lcd_putc(':');
>dtostrf(min_int, 2, 0, buffer);
>lcd_puts(buffer);
>lcd_putc(':');
>dtostrf(sec_int, 2, 0, buffer);
>lcd_puts(buffer);

sprintf(buffer,"%02u:%02u:%02u",std_int,min_int,sec_int);
lcd_puts(buffer);
#1949772
Lesenswert?

Jens H. schrieb:
> Jetzt meine Frage: kann ich das auch erst zu nem kompletten String
> zusammenführen und dann komplett zum LCD übertragen?

Ja.
Kostet aber Rechenzeit und Speicher.

Jens H. schrieb:
> Weitere Frage: ich hab jetzt ein Zeitformat von z.B. " 1: 3:54"
> Gibt es einen Befehl in C, mit der ich 2 Stellen incl führender Null
> erzeugen kann???

Wenn du sprintf() nimmst, dann ja (mit %02d z.B. im Formatstring).
Ob du eine Monsterfunktion wie sprinf() haben willst, steht auf
einem anderen Blatt.

Ansonsten musst du selbst die Länge feststellen und ggf. vorher die
'0' ausgeben.
Gast #1949779
Lesenswert?

>Wenn du sprintf() nimmst, dann ja (mit %02d z.B. im Formatstring).
>Ob du eine Monsterfunktion wie sprinf() haben willst, steht auf
>einem anderen Blatt.
>
>Ansonsten musst du selbst die Länge feststellen und ggf. vorher die
>'0' ausgeben.

Wobei sich ab einer bestimmten Anzahl von Ausgaben sprintf()
dann doch wieder lohnt. Und man kann ja auch noch mehr damit
machen;)

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