Forum: Mikrocontroller und Digitale Elektronik 16bit wert von ad-wandler umrechnen


von tobias hofer (Gast)


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

von Gerhard Schmidt (Gast)


Lesenswert?


von BernhardT (Gast)


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

von tobias hofe (Gast)


Lesenswert?

ich habe es einmal mit ulong gemacht. da habe ich ein bisschen speicher 
gespart.

c-compiler von wickenhäuser

gruss tobias

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.