Q15 Library
mikroPascal PRO for dsPIC30/33 and PIC24 includes a library for operating and working with Q15 fractional number format.
Library Routines
- Q15_Abs
- Q15_Add
- Q15_Sub
- Q15_Itof
- Q15_Ftoi
- Q15_Itoa
- Q15_Atoi
- Q15_Sin
- Q15_Cos
- Q15_Tan
- Q15_Asin
- Q15_Acos
- Q15_Atan
- Q15_Log
Q15_Abs
Prototype |
function Q15_Abs(input : integer) : integer; |
---|---|
Description |
Function calculates absolute value of the Q15 fractional format number. |
Parameters |
|
Returns |
Function returns number in Q15 fractional format, ranging from 0 to 32767. |
Q15_Add
Prototype |
function Q15_Add(x : integer; y : integer; var z : integer) : byte; |
---|---|
Description |
Function sums two Q15 format numbers. If the result exceeds [-32768, 32767] limits, result will be maximal(minimal) number in Q15 format. |
Parameters |
|
Returns |
|
Q15_Sub
Prototype |
function Q15_Sub(x : integer; y : integer; var z : ^integer) : byte; |
---|---|
Description |
Function subtracts two Q15 format numbers. If the result exceeds [-32768, 32767] limits, result will be maximal(minimal) number in Q15 format. |
Parameters |
|
Returns |
|
Q15_Itof
Prototype |
function Q15_Itof(x : integer) : real; |
---|---|
Description |
Function converts number from the Q15 fractional number format to floating point number format. |
Parameters |
|
Returns |
Function returns number in single precision floating point format, ranging from -1 to 0.99997. |
Q15_Ftoi
Prototype |
function Q15_Ftoi(r : real) : integer; |
---|---|
Description |
Function converts number from the single precision floating point number format to Q15 fractional number format. Input number scope should be in the range of [-1.00000, 0.99997]. If the floating point number is not in this range, the resulting number will be 0x7FFF (0x8000). |
Parameters |
|
Returns |
Converted Q15 fractional fromat number in the range of -32768 to 32767. |
Q15_Itoa
Prototype |
procedure Q15_Itoa(x : integer; var s : string); |
---|---|
Description |
Function converts number from the Q15 fractional format to ASCII string. Output ASCII string is in the following format : sn.ddddddddddddddd
|
Parameters |
|
Returns |
Nothing. |
Q15_Atoi
Prototype |
function Q15_Atoi(var s : string; var x : ^integer) : byte; |
---|---|
Description |
Function converts the input ASCII string s into a number in Q15 fractional point format. Input ASCII string should be in the following format: _s_n.ddddddddddddddd_
Parser of input characters has following features :
|
Parameters |
|
Returns |
|
Q15_Cos
Prototype |
function Q15_Cos(x : integer) : integer; |
---|---|
Description |
Function returns the cosine of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from 17705 to 32767. |
Q15_Sin
Prototype |
function Q15_Sin(x : integer) : integer; |
---|---|
Description |
Function returns the sine of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from -27573 to 27573. |
Q15_Tan
Prototype |
function Q15_Tan(x : integer) : integer; |
---|---|
Description |
Function returns the tangent of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from -32768 to 32767. |
Q15_Asin
Prototype |
function Q15_Asin(x : integer) : integer; |
---|---|
Description |
Function returns the arc sine of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from -32768 to 32767. |
Q15_Atan
Prototype |
function Q15_Atan(x : integer) : integer; |
---|---|
Description |
Function returns the arc tangent of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from -25736 to 25735. |
Q15_Acos
Prototype |
function Q15_Acos(x : integer) : integer; |
---|---|
Description |
Function returns the arc cosine of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from 256 to 32767. |
Q15_Log
Prototype |
function Q15_Log(x : integer) : integer; |
---|---|
Description |
Function returns the logarithm of |
Parameters |
|
Returns |
Function returns value in the Q15 format, ranging from -32767 to 0. |
What do you think about this topic ? Send us feedback!