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.