Forum: Mikrocontroller und Digitale Elektronik Integer auf Segmentanzeige


von billabong (Gast)


Lesenswert?

Hallo Zusammen,

ich habe hier ein Display mit einer 16 Segment anzeige!
Ich kann Zahlen auf dem Display ausgeben. Jede Zahl ist dabei aufgeteilt 
in ein High- und ein Lowbyte. jetzt würde ich gerne eine Funktion 
schreiben, die ein Integer direkt auf dem Display ausgibt.
1
void integerzeichen(unsigned char zahl)
2
{
3
case 0:
4
Lowbyte_0 = Bitkombi0L;
5
Highbyte_0 = Bitkombi0H;
6
case 1:
7
Lowbyte_1 = Bitkombi1L;
8
Highbyte_1 = Bitkombi1L;;
9
...
10
case 9:
11
...
12
}

So kann ich natürlich relativ einfach eine Ziffer auf dem Display 
illustrieren.

Wie aber kann ich so 2-stellige, 3-stellige etc. Zahlen auf dem Display 
zeichnen?

Gibt es da Beispiele, BeispielCode etc?

von Olaf (Gast)


Lesenswert?

Teile und herrsche!

Das gilt auch für Problemchen ;-)

Also erstmal die Zahl in Ziffern teilen (itoa) und dann ab damit zur 
Anzeige...

von MaWin (Gast)


Lesenswert?

Wenn du ein Display mit EINER 16-Segment-Anzeige hast, kannst du darauf 
keine 2-3 stelligen Zahlen darstellen.

von Klar (Gast)


Lesenswert?

Klar geht das. Einfach abwechselnd anzeigen mit einer Pause dazwischen, 
damit man weiß, bis wo die Zahl geht.

von billabong (Gast)


Lesenswert?

Kann ich die Zahl nicht per Modulo auf Hunderter, Zehner und Einer 
aufteilen und dann illustrieren? Wie gesagt, einzelne Zahlen kann ich 
auf dem Display abbilden!

von Peter II (Gast)


Lesenswert?

billabong schrieb:
> Kann ich die Zahl nicht per Modulo auf Hunderter, Zehner und Einer
> aufteilen und dann illustrieren? Wie gesagt, einzelne Zahlen kann ich
> auf dem Display abbilden!

klar kann du das, aber vermutlich hat noch keiner wirklich verstanden 
was du innerhalb von dem case machst.

von PittyJ (Gast)


Lesenswert?

billabong schrieb:
> Kann ich die Zahl nicht per Modulo auf Hunderter, Zehner und Einer
> aufteilen und dann illustrieren? Wie gesagt, einzelne Zahlen kann ich
> auf dem Display abbilden!

Genau, Division und Modulo, damit kommst du zum Ziel.
Probiere es einfach mal aus.

von billabong (Gast)


Lesenswert?

also so
1
unsigned char einser = zahl%10;
2
unsigned char zehner = (zahl/10)%10;
3
unsigned char hunderter = (zahl/100)%10;
4
5
intergertodisplay(hunderter);
6
intergertodisplay(zehner);
7
intergertodisplay(einser);

von PittyJ (Gast)


Lesenswert?

Ja
Wo ist das Problem, wenn du das selbsttätig ausprobiert, ohne hier 
vorher noch mal zu fragen? Dann siehst du gleich auch das Ergebnis. Oder 
kannst Debug-Ausgaben bzw Breakpoints einbauen.

Kaputt machen kann man mit reiner Software eigentlich sehr wenig.

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
Noch kein Account? Hier anmelden.