Forum: Mikrocontroller und Digitale Elektronik ADC Float auf 4x 7-Seg


von Alexander (Gast)


Lesenswert?

Hallo,
irgendwie steh ich hier aufm schlauch. ich möchte ein float wert vom adc 
wandler auf ein 7-segment display geben. jedes segment wird für sich 
angesprochen über i2c.

bei 5Volt und 10Bit auflösung
float volt=(adc_wert*0.0048828125);

hier werden die bytes für die segmente übertragen.
led_out (0x00,0x27,ziffer[z1],ziffer[z2],ziffer[z3],ziffer[z4]);

(z1-z4 für die ziffer die zum Segment soll)

das komma selber interessiert mich nicht, ich möchte nur die stellen der 
float zahl für sich haben.

also bei einem float wert von 3,42
z1 = 0
z2 = 3
z3 = 4
z4 = 2

danke schon mal
gruß Alex

von Peter D. (peda)


Lesenswert?

Alexander schrieb:
> float volt=(adc_wert*0.0048828125);

Besser:
1
uint16_t val;
2
uint8_t digit[3];
3
4
val = (adc_wert * 500UL) >> 10;
5
digit[0] = val % 10;
6
val /= 10;
7
digit[1] = val % 10;
8
digit[2] = val / 10;


Peter

von Falk B. (falk)


Lesenswert?


von Alexander (Gast)


Lesenswert?

ahhh, sehr schön. werd ich mir mal einverleiben ^^ genau das was ich 
gesucht habe. DANKE

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.