-
Ich berechne die Stellen immer, vielleicht gibt es einen schöneren Weg.
Code:
lcd_gotoxy(15,1);
Wandelwert=max/100; /* Maximalwert Vorkommastellen berechnen*/
ltoa(Wandelwert,Wert1,10); /* Maximalwert in ASCII-Wert umwandeln*/
lcd_puts_p(ausg[1]); /* ausgabe "max"*/
lcd_puts(Wert1); /* Wert von max auf Display ausgeben */
lcd_puts_p(fuellzeichen[1]); /*Komma ausgeben*/
Wandelwert=max%100; /* Maximalwert Nachkommastellen berechnen*/
if (strlen(Wert1)==2){ /*Wenn anzeige zweistellig, dann Kommastelle nur einstellig*/
Wandelwert=Wandelwert/10; /* Wert auf 1 Stelle begrenzen */
if(Wandelwert == 0){ /* Wenn die ausgabe =0 */
lcd_puts_p(fuellzeichen[0]); /* eine 0 ausgeben */
}
else{
ltoa(Wandelwert,Wert1,10); /*Wert auf ASCII wandeln */
lcd_puts(Wert1);
}
}
else{
ltoa(Wandelwert,Wert1,10); /* Maximalwert in ASCII-Wert umwandeln*/
if (strlen(Wert1)==1){ /* wenn Nachkommastelle nur im hundertstelbereich */
lcd_puts_p(fuellzeichen[0]); /* dann eine Null vorher einfügen */
}
lcd_puts(Wert1); /* auf Display ausgeben */
}
Ich weiss nicht ob du damit was anfangen kannst. Das mit dem sprintf habe ich vor langer Zeit mal probiert, hat mir allerdings den Code ziemlich aufgeblasen. Diese gezeigte Version ist wesentlich kleiner.
-
Verstehe!
Du gibst einmal die ganzezahlen aus und anschließend nach dem Komma Zahlen, dazwischen gibst du noch das komma aus.
Quasi gibst du Zahl1 Komma Zahl2 aus.
-
Hi Hubert!
Ich hätte da nur noch eine Frage!
Was bedeutet diese Zeile die du mir reingeschrieben hast?
Code:
#define F_CPU 4000000L
Ansonstens möchte ich mich für deine Hilfe SEHR bedanken.
-
Diese Zeile gibt die Taktfrequenz an. Sonst stimmt dein delay nicht. Es gehört natürlich die tatsächliche Frequenz eingetragen.
-
Alles klar!
Danke nochmal!