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.

4.143.4 Description<br />

This inline function returns the multiplied second <strong>and</strong> third input value with adding of<br />

first input value. The first input value as well as output value is considered as 32-bit<br />

fractional values. The second <strong>and</strong> third input values are considered as 16-bit fractional<br />

values. The output saturation is not implemented in this function, thus in case the output<br />

value is outside the (-1, 1) interval, the output value will overflow without any detection.<br />

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

Equation MLIB_Mac_Eq1<br />

This implementation is available if 32-bit fractional implementations are enabled.<br />

However it is not possible to use the default implementation based function call, thus the<br />

implementation post-fix or additional parameter function call shall be used.<br />

This inline function returns the multiplied second <strong>and</strong> third input value with adding of<br />

first input value. The first input value as well as output value is considered as 32-bit<br />

fractional values. The second <strong>and</strong> third input values are considered as 16-bit fractional<br />

values. The output saturation is not implemented in this function, thus in case the output<br />

value is outside the (-1, 1) interval, the output value will overflow without any detection.<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.143.5 Re-entrancy<br />

The function is re-entrant.<br />

4.143.6 Code Example<br />

#include "mlib.h"<br />

tFrac32 f32In1;<br />

tFrac16 f16In2;<br />

tFrac16 f16In3;<br />

tFrac32 f32Out;<br />

void main(void)<br />

{<br />

// input1 value = 0.25<br />

f32In1 = FRAC32 (0.25);<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 />

Chapter 4 API References<br />

Freescale Semiconductor, Inc. 599

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

Saved successfully!

Ooh no, something went wrong!