C Compiler Features - PIC24 and dsPIC®
The 24-bit CCS C Compiler supports the PIC24 and dsPIC® DSC devices. It is very similar in functionality to the other CCS Compilers. The compiler contains Standard C operators and built-in libraries that are specific to the PIC® registers. Access to hardware features from C. Features include:
- 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
Features such as 48-bit and 64-bit integers and floating point numbers, make calculations requiring greater precision or broader range much easier. Function recursion allows new possibilities for iterative processing algorithms. There is greatly enhanced oscillator control, allowing you to choose from among a multitude of clock sources, PLL and power saving options while remaining backward compatibility with other CCS C Compilers.
The PCD PIC24 and dsPIC® C Compiler includes a more optimized processor and peripheral control. There are over 400 Built-in Functions to access PIC® MCU hardware is easy and produces efficient and highly optimized code. Built-in support is included for DSP enhanced Analog to Digital conversion, 16-bit and 32-bit timers, independent I2C and SPI, UART Communication, Input Capture/Output compare and Motor Control PWM modules. Functions include:
- 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.
The PCD PIC24 and dsPIC® C Compiler can handle inline or separate functions, as well as parameter passing in re-usable registers. Transparent to the user, the compiler analyzes program structure and call tree processes to optimize RAM and ROM Usage. Additional features include:
- 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.
The compiler runs under Windows 95, 98, ME, NT4, 2000, XP, Vista, Windows 7, Windows 8, Windows 10 or Linux. It outputs hex and debug files that are selectable and compatible with popular emulators and programmers including the MPLAB® IDE for source level debugging.