03.08.2013 Views

Embedded Software and Motor Control Libraries for PXR40xx

Embedded Software and Motor Control Libraries for PXR40xx

Embedded Software and Motor Control Libraries for PXR40xx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Function MLIB_SubSat_F16<br />

4.179.4 Description<br />

Subtraction with overflow control of two fractional 16-bit numbers. The second argument<br />

is subtracted from the first one. The input values as well as output value are considered as<br />

16-bit fractional data type. The output saturation is implemented in this function, thus in<br />

case the subtraction of input parameters is outside the (-1, 1) interval, the output value is<br />

limited to the boundary value.<br />

The output of the function is defined by the following simple equation:<br />

Equation MLIB_SubSat_Eq1<br />

Note<br />

Due to effectivity reason this function is implemented as inline<br />

<strong>and</strong> thus is not ANSI-C compliant.<br />

4.179.5 Re-entrancy<br />

The function is re-entrant.<br />

4.179.6 Code Example<br />

#include "mlib.h"<br />

tFrac16 f16In1;<br />

tFrac16 f16In2;<br />

tFrac16 f16Out;<br />

void main(void)<br />

{<br />

// first input = 0.5<br />

f16In1 = FRAC16 (0.5);<br />

// second input = 0.25<br />

f16In2 = FRAC16 (0.25);<br />

// output should be 0x2000<br />

f16Out = MLIB_SubSat_F16(f16In1,f16In2);<br />

// output should be 0x2000<br />

f16Out = MLIB_SubSat (f16In1,f16In2,Define F16);<br />

// ##############################################################<br />

// Available only if 16-bit fractional implementation selected<br />

<strong>Embedded</strong> <strong>Software</strong> <strong>and</strong> <strong>Motor</strong> <strong>Control</strong> <strong>Libraries</strong> <strong>for</strong> <strong>PXR40xx</strong>, Rev. 1.0<br />

672 Freescale Semiconductor, Inc.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!