Atmega128 og C -spørgsmål:"Signed Integer division rounds to" ?

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

Translate This Thread From Danish to

Threaded View
Hej NG

Nu ved jeg godt, at denne gruppe primE6%rt er for elektronik-selvbyg,20%
men her sidder jo ogsE5% en mE6%ngde folk, som har forstand pE5% diverse20%
atmega'er :-)

Vi er ved at lave et projekt, hvor vi forsF8%ger at simulere en20%
implementation af et filter og en controller pE5% en Atmega128. For at20%
undgE5% floating-point operationer (den har travlt! ), vil vi forsF8%ge os20%
med fixed-point istedet. Undervejs melder der sig sE5% spF8%rgsmE5%let: N=
E5%r20%
man laver en division, hvor mindst et af elementerne er en signed20%
integer, hvad sker der sE5% i forhold til afrunding? Afrunder den mod20%
nul, eller negativt uendeligt?

Vi har fundet fF8%lgende i dokumentationen for Simulink Fixed-Point:
"As stated in the C standard, the most efficient rounding mode for
multiplication operations in every case is floor. However, the C20%
standard
does not specify the rounding mode for division in cases where at20%
least one
of the operands is negative. Therefore, the most efficient rounding20%
mode for
a divide operation with signed data types can be floor or zero20%
depending on
your hardware."

Vi har ikke kunnet finde noget i Atmega128's dokumentation...

Mvh
Jesper
--
http://fdf.dk/landsdel1 /


Re: Atmega128 og C -spørgsmål:"Signed Integer division rounds to" ?

Quoted text here. Click to load it

Hej Jesper. Du skal nok nærmere til at lede lidt i dokumentationen for
den C compiler du benytter. Nu er jeg ikke klar over om ATMega128 har
en hardware divider, men hvis den ikke har, ja så er det C compilerens
manual du har brug for. Jeg vil tro at compileren implementere
division vha nogle subtraktioner. Led evt. på Google for at finde en
forklaring.

Overvej om det ikke kan betale sig at gange med "den omvendte" i
stedet for at dividere. Det er generelt noget møg at foretage division
med MCU/CPU/DSP'er. Hvor er det iøvrigt i dine filtre du har brug for
division? Er det FIR eller IIR du har gang i?

/Thomas

Re: Atmega128 og C -spørgsmål:"Signed Integer division rounds to" ?
Quoted text here. Click to load it

Hej Thomas

Takker for svaret. Hmm, det ser faktisk ikke ud til, at jeg skal bruge20%
division i selve filteret. Det var blot SimuLink Fixed-Point blokken,20%
som mente den gerne ville vide det, men informationen er vel ikke20%
obligatorisk hvis division ikke indgE5%r.

Mvh
Jesper


Site Timeline