C Compiler Features - PIC24 and dsPIC®

Compiler Features:

Standard C Pre-processors, Operators & Statements
1, 8, 16, 32, 48 and 64 bit integer types
32, 48 and 64-bit Float
Standard one bit type (Short Int) permits the compiler to generate very efficient Bit oriented code
#BIT, #BYTE and #WORD will allow C variables to be placed at absolute addresses to map registers to C variables
Bit Arrays
Fixed Point Decimal
Constants in ROM
Flexible Handling Of Constant Data
Variable Length Constant Strings
Addressmod Capability To Create User Defined Address Spaces In Memory Device

Built-in Functions Included:

Built-in libraries that work with all chips for RS-232 serial I/O, I2C, discrete I/O and precision delays
Serial I/O functions allow standard functions such as GETC() and PRINTF() to be used for RS-232 like I/O
Formatted printf allows easy formatting and display in HEX or decimal
Multiple I2C and RS232 ports may be easily defined
#use rs232() offers options to specify a maximum wait time for getc
Hardware tranceiver used when possible, but for all other occasions the compiler generates a software serial transceiver
Microcontroller clock speed may be specified in a PRAGMA to permit built-in functions to delay for a given number of microseconds or milliseconds
Functions such as INPUT() and OUTPUT_HIGH() properly maintain the tri-state registers
Compiler directives determine if tri-state registers are refreshed on every I/O or if the I/O is as fast as possible
#USE SPI()
Simple functions like READ_ADC() to read a value from A/D converter
Source code drivers included for LCD modules, keypads, 24xx and 94xx serial EEPROM, X10, DS1302 and NJU6355 real time clocks, Dallas touch memory devices, DS2223 and PCF8570, LTC1298 and PCF8591 A/D converters, temperature sensors, digital pots, I/O expander and much more
133 ready-to-run programs included

Additional Features:

Assembly code may be inserted anywhere in the source and may reference C variables
Function Overloadings allows for several functions with the same name, but differences in number and type of parameter
Default Parameters can be used in a function if arguments are not used in a call
For interrupt functions, the compiler generates all startup and clean up code
Reference parameters may be used to improve code readability and inline function efficiency
Variable Number Of Parameters in a function
Relocatable Objects / Multiple Compilation Unit (IDE Only)
Automatic #fuses Configuration
Data Converter Interface (DCI) peripheral support to communicate with codec chips using I2S, AC '97 16-bit and 20-bit protocols, making audio applications simpler
New digital signal processing functionality by manually assigning variables to data spaces for faster access with new preprocessor declarations
Use DSP inline assembly for your most performance critical code