Fixed Point Math Library for PIC24 and dsPIC
  Software Libraries
  Application Notes
  Code Examples
  Data Sheets
  Development Tools
  MCU & DSC Overview
  8-bit
  16-bit
  32-bit
  Application Design Centers
Fixed Point Math Library for PIC24 and dsPIC

Summary

The Fixed Point Math Library simplifies writing fixed point algorithms, supporting both Q15 and Q16 data formats. Using the simple, C callable functions contained in the library complex fixed point mathematical operations can be easily executed. The library is built into the MPLAB C Compiler and is part of every install.

 

Description
The Fixed Point Math Library contains functions for manipulating Q15 and Q16 integers. The 16-bit Language Tools document details the operation of the Q15 and Q16 formats and explains each function in detail.

Features
Free library included with MPLAB compiler

Compatible with the Microchip PIC24and dsPIC families
Over 30 math functions for working with Q15 or Q16 data

Detailed explanation of Q formatted data

Detailed description of each function

Highly optimized functions for fast execution

Devices Supported
All processors in the PIC24and dsPIC DSC family

Getting Started
Download and install MPLAB and the free trial version of the C compiler

See Chapter 5 of the 16-bit Language Tools Library for complete documentation of the Fixed Point Math Library

Start writing Q formatted math code!

 

Common Fixed Point Math Functions

Function

Description

 

_Q1Xabs*

Absolute value of a Q15/Q16 value

_Q1Xsin*

Sin of a Q15/Q16 number

_Q1Xcos*

Cos of a Q15/Q16 number

_Q1Xtan*

Tan of a Q15/Q16 number

_Q1Xasin*

Arc sin of a Q15/Q16 value

_Q1Xacos*

Arc cos of a Q15/Q16 value

_Q1Xatan*

Arc tan of a Q15/Q16 value

_Q1Xadd*

Sums two Q15/Q16 values, taking care of overflow and underflow

_Q1Xsub*

Subtracts two Q15/Q16 values, taking care of overflow and underflow

_Q1Xlog*

Log of a Q15/Q16 number

_Q1Xatoi*

Converts ASCII number to a Q15/Q16 number

_Q1Xftoi*

Converts a single precision floating point number to a Q1X value

_itoaQ1X*

Converts a Q1X value to an ASCII encoded number

_itofQ1X*

Converts Q1X value to a floating point value

*- function name contains either Q15 or Q16 depending on the variable type

A complete list of fixed point math functions is available in the 16-Bit Language Tool Libraries document

Downloads