RTC DS 1307 : Darstellung optimieren

Hi,
wie kann ich die Darstellung so optimieren, dass ich statt 1:1:8 (h:m:s) => 01:01:08 angezeigt bekomme?
Muss ich das über ne if-Klausel (if sek<10 dann print"0") machen oder gibt es einen eleganteren Weg?

Gruß
Thorsten

Hi

Jup :D Benutze den Platzhalter "%2d" ;) Damit erstparst du dir abfragen^^

MFG, Robdeflop®

Eine "etwas" ausführlichere Erläuterung hat man wegen zuvorigem Auftreten der Frage hier gelassen:

http://www.imb-jena.de/~gmueller/kurse/c_c++/c_time.html

:-)

Hallo, wie setze ich den Platzhalter denn ein? Habe dazu im netz leider nix gefunden.

 lcd.setCursor(6, 0);
  lcd.print("Uhrzeit:");
  lcd.setCursor(6, 1);
  lcd.print(hour, DEC);
  lcd.print(":");
  lcd.print(minute, DEC);
  lcd.print(":");
  lcd.print(second, DEC);
  lcd.setCursor(positionTag, 2);
  lcd.print(Tag);
  lcd.setCursor(6, 3);
  lcd.print(dayOfMonth, DEC);
  lcd.print(".");  
  lcd.print(month, DEC);
  lcd.print(".");
  lcd.print(year, DEC);  
  }

Gruß

du schiebst es zunächst in eine Variable und gibst die dann aus:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295776250

df6ih: du schiebst es zunächst in eine Variable und gibst die dann aus:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295776250

Vielleicht sollte man hier noch erst einmal zum besseren Verständnis erwähnen, dass man mit der C-Funktion "sprintf" Zahlenwerte (und anderes) schön formatiert in einen Puffer schreiben kann und dann gibt man den kompletten Pufferinhalt in einem Schwung aus. Das ist nämlich bis jetzt noch nicht erwähnt worden:

int stunde = 11;
int minute = 5;
int sekunde = 3;
char puffer[30];     // muss gross genug sein, dass alle Zeichen reinpassen!!
...
sprintf (puffer, "Zeit %02d:%02d:%02d", stunde, minute, sekunde);   // %02d sind Platzhalter: int mit zwei Ziffern und  führender Null ausgeben
lcd.print(puffer);    // Gibt folgenden Text aus:     Zeit 11:05:03

Nicht erschrecken, aber das Programm wird dadadurch ein ganzes Stück größer, weil die entsprechenden Funktion aus der Library dazugepackt werden. Fragen zu sprintf werden von Google ganz sicher beantwortet, wenn man nach "printf c" sucht! Das dort für printf() angegebene kann auf sprintf() übertragen werden, um in einen Puffer zu schreiben.

printf/sprintf macht die Ausgabe von formatierten Zahlenwerten sehr einfach.

Wolfgang