Hallo Leute,
ich möchte eine Zahl --> 999.999 (neunhundert99tausendend999)
runterzählen. Die Zahl habe ich vorher per Tastendruck (jede Stelle
hoch/runter ok --> nächste Stelle) in ein char-Array eingelesen. Nun ist
meine Frage wie ich diese Zahl runterzählen kann... Eine Möglichkeit
wäre mit verschachtelten Schleifen zu arbeiten... z.B.
do{
Cycles[5] = Cycles[5] - 1;
set_cursor(5,1);
lcd_data(Cycles[5]);
long_delay(100);
}while(Cycles[5]!=48);
if(Cycles[4]!=48){
Cycles[4] = Cycles[4] - 1;
set_cursor(4,1);
lcd_data(Cycles[4]);
Cycles[5] = Cycles[5] + 9;
set_cursor(5,1);
lcd_data(Cycles[5]);
}
Dies auf alle 6 Stelle anzuwenden würde jedoch viel zu lange dauern.
Gibt es eine Möglichkeit das Array in eine long Zahl zu wandeln und
diese dann einfach per -- Befehl runterzuzählen????
Vielen Dank schonmal für die Antworten!
die Stellen entsprechen ihrer Wertigkeit addieren und das Ergebnisregister (bzw. die Variable) runterzählen. bye Frank
Gast
#911411
Ja. Die Möglichkeit gibts, genauso wie es hier im Forum [ c ] gibt, um C-Code farblich hervorzuheben.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Sowas in dem Dreh.
Okay aber uint16_t --> 16Bit 2hoch16 = 65.536 Meine Zahl ist aber 999.999 Ich brächte mindestens 17 Bit (-: für das Ergebnisregister
Gast
#911423
Stefan Z. wrote: > Okay aber uint16_t --> 16Bit 2hoch16 = 65.536 Meine Zahl ist aber > 999.999 Ich brächte mindestens 17 Bit (-: für das Ergebnisregister Und? nimm halt uint32_t ...
super! Es funktioniert anscheinend... Aber leider kann die LCD_Display Funktion so große Zahlen nicht anzeigen. Ich verwende die Funktion lcd_string() aus dem gcc Tuturial --> oder geht das bei euch? char Buffer[20]; zyklen_einlesen(); set_cursor(0,2); lcd_data(Cycles[0]); lcd_data(Cycles[1]); lcd_data(Cycles[2]); lcd_data(Cycles[3]); lcd_data(Cycles[4]); lcd_data(Cycles[5]); uint32_t cycles_neu = 999999; // zum Test der LCD fkt itoa( cycles_neu , Buffer, 10 ); set_cursor(0,1); lcd_string(Buffer);
Gast
#911473
Das Problem liegt vermutlich eher in "itoa". Probier dein Glück mal mit "ultoa".
ich danke dir --> ultoa hat funktioniert! echt klasse wie schnell man hier im Forum hilfe bekommt! DANKE!!!!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.