16bit wert von ad-wandler umrechnen

Gast #29564
Lesenswert?

hallo

ich lese von meinem ad-wandler einen 16bit wert und
schreibe den ihn eine int variable.

nun möchte ich diesen wert in die dazu analogen spannungswerte 
umrechnen. wie mache ich das am besten ohne float variablen?

momentan verwende ich folgenden algorythmus:

Uein=(Uref/2^n)*wandlerergebniss

wobei n = 16

das funktioniert aber nicht da ich das wandler ergebniss in eine int 
variable schreibe damit ich << rechtsshiften kann.
das funktioniert dann aber bei einer float nicht mehr.
und wenn ich int/float rechne ist das ergebniss wieder int.

hatt jemand eine idee wie ich das machen könnte?

gruss
tobias
Gast #29566
Lesenswert?

Wenn schon Int dann long oder ulong und mit der gerundeten Konstanten 
von 1/(Vref / 2^n)  multiplizieren (das  Addieren von Samples kann 
multiplizieren erleichtern bis überflussig machen ). Die Kommastellen 
must du dann aber selber rausfinden. Es solte aber normalerweise kein 
Problem sein Int zu Float umzuwandel (welchen Compiler verwendest du ?).
Gruß Bernhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren