Hallo allerseits,
ich hoffe mir kann jemand bei meinem kleinen Problem weiterhelfen...
Ich bin noch ziemlich in den Kinderstuben was WinAVR und AVR
Programmierung in C angeht.
Ich möchte gern die Uhrzeit auf meinem Nokia 6100 Display ausgeben.
Mit der usart_write Zeile funktioniert die Zeitausgabe auf der seriellen
Schnittstelle ohne Probleme... im Sekundentakt...
Wenn ich aber mit lcd_print die Uhrzeit auf dem LCD ausgeben möchte,
dann bekomme ich nur Hyroglyphen anstatt den Zahlen zu sehen.
1
//Uhrzeit im Sekundentakt auf der Console und TFT ausgeben
Time[5]='\0';// das abschliessende \0 nicht vergessen! Sonst ist das kein String!
18
19
lcd_print(Time,20,30,0,Weiss,Dunkelblau);
Die Funktion LCD Print übernimmt nur ganze Strings.
Ich bin wirklich für jede Hilfe sehr dankbar, da ich mit meinen
Kenntnissen und Stundenlangen lesen und suchen im Internet bisher nicht
weitergekommen bin um dieses umzusetzen.
Freundliche Grüße
Denny
Dazu sollten wir erstmal wissen was lcd_print als Übergabewert(e)
erwartet. Du schreibst was, dass die Funktion nur "ganze" Strings
übernimmt...
Die Zeile
lcd_print(Time,20,30,0,Weiss,Dunkelblau);
sieht aber garnicht nach String aus.
Gruß,
Thomas
Genau, hh,mm und ss können auch zweistellig sein. Und dann geht deine
Zuweisung auch nicht weil hh,mm und ss noch ints sind. Du willst aber
scheinbar einen String haben. Also jedes Zeichen + 0x30. Also
Am besten die Lösung mit sprintf nehmen und Time entsprechen groß
machen.
Ein kleines anliegen hätte ich noch bezüglich des Strings.
1
charTime[10];
2
3
sprintf(Time,"%2i:%2i:%2i",hh,mm,ss);
4
5
lcd_print(Time,6,114,1,Schwarz,Gelb);
Meine Zeit wird bei einer einstelligen Zeitangabe wie folgt ausgegeben:
0:12: 4
Wie fügt man dort einen Platzhalter mit ein, sodaß die Uhrzeit dann
folgendermaßen dargestellt wird: 00:12:04
Gruß
Denny
oder noch besseer schau dir mal die Help fon sprintf an, dann lernst du
am meisten. Du weist jetzt ja dank dem Forum wie nützlich die Funktion
ist.
Cheers
Ritchie