fixed point?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Hey (smider den lige her også.. den ligger også i programmering.c)

Først, dette er uC relatreret og jeg regner med at bruge keil...

Jeg legede lige med at gange 2 floats sammen, og det ser ud til at tage alt
for lang tid...

Er der nogle der ved om det er muligt kun at bruge 16bit float i keil, og
evt hvordan ?

Kan man komme til at regne med 16 bit fixed point, for det vil vel gå
stærkere..

jeg skal gerne så langt ned i tid jeg kan nå at lave 2 gange og nogle adder
på 20uS hvilket svarer til mindre end 330 cycles og en normal muliply tager
vidst omkring 9 cycles...

er der nogle måder jeg kan gange decimal tal sammen på hurtigere.. evt et
lib eller helst integreret i keil

Kasper



Re: fixed point?
Hej Kasper

Hvilken processor ?

m.v.h
lasse



Re: fixed point?
Hvad med at betragte det som tusindedele og regne med integer



Re: fixed point?
Prøv at kikke i gruppen   comp.dsp
Der diskuteres disse sager tit.

I fixed point skal du tage hensyn til hvor store og hvor små tal du vil
kunne behandle.
Hvis du sætter kommaet midt mellem de 2 bytes i de 16 bits, så kan du
benytte tal op til ca 126.996 og ned til ca 0.004 nær nul (uden at snakke om
fortegn).

Sådanne tal kan blot lægges samme med alm cpu additioner.

Når de ganges, så fylder resultatet jo 32 bits (hvis du kan opnå dette i din
cpu). Disse 32 bits skal skifts 8 bit ned og gemmes i 16 bit igen.
Har du ikke 32 bits til rådighed som resultat, kan du fx skift begge med 4
bits først. (Så mistes der information, men måske brugbart).

Fixed point i 8.8 system (8 før og 8 efter komma)
X = A + B

Y = (A * B ) shr 8
eller
Y = (A shr 4) * (B shr 4)

Husk fortegnet!!

--
Christen Fihl
http://HSPascal.fihl.net



Site Timeline