Hi Rajkumar,
The standard MTRCKTSBNZVM128 code works with fractional numbers.
The S12Z do not have hardware support for floating point calculations and software emulation presents too big overhead – the multiplication and division operation of float variables will take hundreds/thousands of bus cycles.
Therefore the MLIB_Div_FLT() function is not implemented for MCUs without floating point hardware.
Of course, you may still multiply/divide floating variables by software emulation. In that case, you may simply use appropriate ANSI library (e.g. ansif.lib) and use standard “*” or “/” operands.
However, I am afraid that this will not work for motor control processing due to too big computing load.

Note:
1. Float is IEEE32, Double is IEEE32 optimized, Long Long is 32-bit
ANSI library: ansif.lib
Compiler options:
2. Float is IEEE32, Double is IEEE32 compliant, Long Long is 32-bit
ANSI library: ansifc.lib
Compiler options: -fp_compliant
3. Float is IEEE32, Double is IEEE64 optimized, Long Long is 64-bit
ANSI library: ansidm.lib
Compiler options: -double_size=8 -bit64_code_gen mem
4. Float is IEEE32, Double is IEEE64 compliant, Long Long is 64-bit
ANSI library: ansidmc.lib
Compiler options: -fp_compliant -double_size=8 -bit64_code_gen mem
I hope it helps you.
Have a great day,
Radek
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------