Hallo Microcomputer Freunde ich bin ein Neueinsteiger und wollte mal fragen ob mir einer sagen kann wie man Zahlen zerlegt und auf ein LCD Display ausgibt Programmablauf: Zerlegen Divisor=10000,Stelle=[1] Wert[Stelle]=Zahl/Divisor Zahl=Zahl-Divisor*Wert[Stelle] Divisor=Divisor/10,Stelle=Stelle+1 Stelle=6 JA/Nein das Programm soll mit C geschrieben werden Zahl=Zahl-Divisor*Wert[Stelle]//Was macht diese Zeile Vielen Dankl
Am einfachsten ist es, wenn man sich solche Algorithmen mal durchspielt. Angenommen es gitl die Zahl 24000 zu zerlegen. Zeile1: Divisor ist dann nach der ersten Zeile also 2. Zeile2: Wert der ersten Stelle wird mit 2 festgelegt. Zeile3: zahl wird vermindert um 20000 Zeile4: vom Divisor wird eine 0 gestrichen, also neuer divisor ist 1000 würdest Du zeile 3 weglassen, dann würdest Du beim nächsten Durchlauf wieder 24000 durch 1000 teilen, also würdest als Wertigkeit für die zweite Stelle nicht 4 sondern 24 bekommen.
Ich habe das Problem mal wie folgt gelöst: int wert; unsigned char einer; unsigned char zehner; unsigned char hunderter... einer = wert % 10; wert = wert / 10; zehner = wert % 10; wert = wert / 10; usw.
Hi ausgabe einer beliebigen Anzahl von Stellen (inkl. Vornullenunterdrückung) einer long-Zahl auf $AUSGABEDEVICE als ASCII-Zeichen: /** Zahl dezimal ausgeben d: auszugebende Zahl n: Anzahl der Stellen (von hinten) v: 0=ohne Vornullenunterdrückung */ void xxx_printd(unsigned long d, unsigned char n, unsigned char v) { unsigned char s[10]; unsigned char m; //Mehr als 10 Stellen hat ein long eh nicht if(n>10) n=10; //Erstmal Array mit n Stellen erzeugen for(m=0;m<n;m++) { s[m]=(d%10); d/=10; } m=0; //Ausgabe do{ n--; if((!v)||(m)||(s[n])) { xxx_putc(s[n]+0x30); m=1; } }while(n); }
Hi, unter einen anderen NAmen wurde dies in diesem Thread auführlich mit mehreren Lösungsansetzen beschrieben. Speziel für LCD Betreiber sind auch Routinen bei... http://www.mikrocontroller.net/forum/read-1-109329.html Gruß AVRli... der davon auch provitiert hat... :-D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.