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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Function MLIB_MulSat_F16<br />

void main(void)<br />

{<br />

// first input = 0.8<br />

f16In1 = FRAC16 (0.8);<br />

}<br />

// second input = 0.75<br />

f16In2 = FRAC16 (0.75);<br />

// output should be 0x4ccc = FRAC16(0.6)<br />

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

// output should be 0x4ccc = FRAC16(0.6)<br />

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

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

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

// as default<br />

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

// output should be 0x4ccc = FRAC32(0.6)<br />

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

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

Equation MLIB_MulSat_Eq1<br />

Note<br />

Overflow is detected. The functions saturates the return value if<br />

it cannot fit into the return type.<br />

4.155.7 Re-entrancy<br />

The function is re-entrant.<br />

4.155.8 Code Example<br />

#include "mlib.h"<br />

tFrac16 f16In1;<br />

tFrac16 f16In2;<br />

tFrac16 f16Out;<br />

void main(void)<br />

{<br />

// first input = 0.8<br />

f16In1 = FRAC16 (0.8);<br />

// second input = 0.75<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 />

630 Freescale Semiconductor, Inc.

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

Saved successfully!

Ooh no, something went wrong!