Syntax and Functions
CCS C Compilers include Standard C Constructs, numerous Pre-Processor Functions, and hundreds of Built-In Functions. All practical ANSI C standard requirements are implemented. C syntax and special functions have a uniform syntax across all chip families, allowing for migration to a new chip trivial.
Data Types
- int1
- int8
- int16
- int32
- int48*
- int64*
- float
- float48*
- float64*
- short
- char
- int
- long
- double*
- _fixed(n)
- unsigned
- signed
- void
Items marked with * are for 24-bit parts only.
Standard C Syntax
- if, else, while, do, switch, case, for, return, goto, break, continue
- ! ~ ++ -- * = = , & |
- * / % << >> ^ && || ?:
- <= < > >= == !=
- = += -= *= /= %= >>= <<= &= ^=m |=
- typedef, static, auto, const, enum, struct, union
- Arrays up to 5 subscripts
- Structures and Unions may be nested
- Custom bit fields (1-8 bits) within structures
- Enumurated types
- Constant variables, arrays, structures and strings
- Full function parameter support (any number and kind)
- C++ reference parameters and comments allowed
Pre-Processors
Built-In Libraries (+show)
#ocs
#use capture
#use delay
#use dynamic_memory
#use fast_io
#use fixed_io
#use i2c
#use profile
#use pwm
#use rs232
#use spi
#use standard_io
#use timer
#use touchpad
Compiler Control (+show)
#case
#ignore_warnings
#line
#module
#opt
#priority
#profile
Device Specification (+show)
#device
#fuses
#hexcomment
#id
#pin_select
#serialize
#todo
Linker (+show)
#build
#export
#import
Memory Control (+show)
#asm
#asm asis
#bank_dma
#bank1
#bankx
#banky
#bit
#byte
#endasm
#fill_rom
#locate
#org
#reserve
#rom
#type
#word
#zero_local_ram
#zero_ram
Pre-Defined Identifiers (+show)
_ _address_ _
_ _buildcount_ _
_ _date_ _
_ _device_ _
_ _file_ _
_ _filename_ _
_ _line_ _
_ _pcb_ _
_ _pcd_ _
_ _pch_ _
_ _pcm_ _
_ _time_ _
Function Qualifiers (+show)
_ _attribute_ _
#inline
#int_xxxx
#int_default
#int_global
#recursive
#separate
_ _unicode_ _
RTOS (+show)
#task
#use rtos
Standard C (+show)
#define
defined()
definedinc()
#elif
#else
#endif
#error
#if
#ifdef
#ifndef
#include
#list
#nolist
#pragma
#undef
#warning
Built-In Functions
Operation Amplifier
setup_opamp1( )
setup_opamp2( )
setup_opamp3( )
setup_opamp4( )
Programmable Gain Amplifier (PGA)
setup_pga( )
A/D Conversion (ADC)
adc_done( )
adc_done2( )
adc_read( )
adc_status( )
adc_write( )
get_adc_ports( )
high_speed_adc_done( )
read_adc( )
read_adc2( )
read_high_speed_adc( )
read_sd_adc( )
set_adc_channel( )
set_adc_channel2( )
set_adc_trigger( )
set_analog_pins( )
set_sd_adc_channel( )
set_dedicated_adc_channel( )
setup_adc( )
setup_adc2( )
setup_adc_ports( )
setup_adc_ports2( )
setup_adc_reference( )
setup_adc_reference2( )
setup_dedicated_adc( )
setup_high_speed_adc( )
setup_high_speed_adc_pair( )
setup_sd_adc( )
setup_sd_adc_calibration( )
Analog Comparator
setup_comparator( )
setup_comparator_dac( )
setup_comparator_filter( )
setup_comparator_mask( )
setup_comparator_slope( )
setup_comparator_x( )
D/A Conversion (DAC)
dac_write( )
setup_dac( )
Proportional Integral Derivative (PID)
pid_busy( )
pid_get_result( )
pid_read( )
pid_write( )
setup_pid( )
Quadrature Encoder Interface (QEI)
qei_get_capture( )
qei_get_count( )
qei_get_index_count( )
qei_get_interval_count( )
qei_get_velocity_count( )
qei_set_count( )
qei_set_index_count( )
qei_status( )
setup_qei( )
CAN Bus
can_abort( )
can_associate_filter_to_buffer( )
can_associate_filter_to_mask( )
can_config_DMA( )
can_disable_filter( )
can_disable_interrupts( )
can_disable_rtr( )
can_enable_b_receiver( )
can_enable_b_transfer( )
can_enable_filter( )
can_enable_interrupts( )
can_enable_rtr( )
can_fifo_getd( )
can_get_id( )
can_getd( )
can_init( )
can_kbhit( )
can_load_rtr( )
can_putd( )
can_set_baud( )
can_set_buffer_id( )
can_set_buffer_size( )
can_set_functional_mode( )
can_set_id( )
can_set_mode( )
can_tbe( )
can_trb0_putd( )
Single-Edge Nibble Transmission (SENT)
sent_getd( )
sent_putd( )
sent_status( )
setup_sent( )
Bit/Byte Manipulation
_mul( )
bit_clear( )
bit_first( )
bit_last( )
bit_set( )
bit_test( )
make16( )
make32( )
make8( )
rotate_left( )
rotate_right( )
shift_left( )
shift_right( )
swap( )
Cyclic Redundancy Check (CRC)
crc_calc( )
crc_calc8( )
crc_calc16( )
crc_calc32( )
crc_init( )
crc_read( )
crc_write( )
setup_crc( )
Data Converter Interface (DCI)
dci_data_received( )
dci_read( )
dci_start( )
dci_transmit_ready( )
dci_write( )
setup_dci( )
Data Signal Modulator (DSM)
setup_dsm( )
Environment
getenv( )
Input Capture / Output Capture
get_capture( )
setup_capture( )
setup_compare( )
General Purpose I/O
get_tris_x( )
input( )
input_change_x( )
input_state( )
input_x( )
output_bit( )
output_drive( )
output_float( )
output_high( )
output_low( )
output_toggle( )
output_x( )
port_a_current_source( )
port_x_pullups( )
set_input_level_x( )
set_open_drain_x( )
set_pulldown( )
set_pullup( )
set_slow_slew_x( )
set_tris_x( )
I2C I/O
i2c_init( )
i2c_isr_state( )
i2c_poll( )
i2c_read( )
i2c_slaveaddr( )
i2c_speed( )
i2c_start( )
i2c_stop( )
i2c_transfer( )
i2c_transfer_in( )
i2c_transfer_out( )
i2c_write( )
Peripheral Pin Select (PPS)
pin_select( )
RS232 I/O
assert( )
fgetc( )
fgets( )
fprintf( )
fputc( )
fputc_send( )
fputs( )
fscanf( )
getc( )
getch( )
getchar( )
gets( )
kbhit( )
perror( )
printf( )
putc( )
putc_send( )
putchar( )
puts( )
rcv_buffer_bytes( )
rcv_buffer_full( )
scanf( )
set_uart_speed( )
setup_uart( )
tx_buffer_available( )
tx_buffer_bytes( )
tx_buffer_full( )
SPI Two Wire I/O
setup_spi( )
setup_spi2( )
setup_spi3( )
setup_spi4( )
spi_data_is_in( )
spi_data_is_in2( )
spi_data_is_in3( )
spi_data_is_in4( )
spi_init( )
spi_prewrite( )
spi_read( )
spi_read_16( )
spi_read_32( )
spi_read2( )
spi_read2_16( )
spi_read2_32( )
spi_read3( )
spi_read3_16( )
spi_read3_32( )
spi_read4( )
spi_read4_16( )
spi_read4_32( )
spi_set_txcnt( )
spi_speed( )
spi_transfer_write( )
spi_write( )
spi_write2( )
spi_write3( )
spi_write4( )
spi_xfer( )
spi_xfer_in( )
Master Program Memory
load_slave_program( )
verify_slave_program( )
Master Slave Interface (MSI)
msi_fifo_status( )
msi_mailbox_status( )
msi_read_fifo( )
msi_read_mailbox( )
msi_status( )
msi_write_fifo( )
msi_write_mailbox( )
setup_msi( )
Parallel Ports (PMP, PSP)
pmp_address( )
pmp_error
psp_error( )
pmp_input_full( )
psp_input_full( )
pmp_output_full( )
psp_output_full( )
pmp_overflow( )
psp_overflow( )
pmp_read( )
psp_read( )
pmp_timeout( )
psp_timeout( )
pmp_write( )
psp_write( )
setup_pmp( )
setup_psp( )
Configuration Memory
read_config_info( )
read_configuration_memory( )
read_device_info( )
write_configuration_memory( )
Direct Memory Access (DMA)
dma_start( )
dma_status( )
setup_dma( )
External Memory
read_external_memory( )
setup_external_memory( )
write_external_memory( )
RAM / Extended RAM
read_bank( )
read_extended_ram( )
write_extended_ram( )
write_bank( )
ROM / Data EEPROM / Program EEPROM
erase_eeprom( )
erase_program_eeprom( )
erase_program_memory( )
goto_address( )
label_address( )
read_calibration( )
read_calibration_memory( )
read_eeprom( )
read_program_eeprom( )
read_program_memory( )
read_program_memory8( )
read_rom_memory( )
write_eeprom( )
write_program_eeprom( )
write_program_memory( )
write_program_memory8( )
Real Time Operating System (RTOS)
rtos_await( )
rtos_disable( )
rtos_enable( )
rtos_msg_poll( )
rtos_msg_read( )
rtos_msg_send( )
rtos_overrun( )
rtos_run( )
rtos_signal( )
rtos_stats( )
rtos_terminate( )
rtos_wait( )
rtos_yield( )
Code Profile
profileout( )
Internal Oscillator
setup_oscillator( )
Numerically Controlled Oscillator (NCO)
get_nco_accumulator( )
get_nco_inc_value( )
set_nco_accumulator( )
set_nco_inc_value( )
setup_nco( )
Configurable Logic Cell (CLC)
clc1_setup_gate( )
clc2_setup_gate( )
clc3_setup_gate( )
clc4_setup_gate( )
clc1_setup_input( )
clc2_setup_input( )
clc3_setup_input( )
clc4_setup_input( )
setup_clc1( )
setup_clc2( )
setup_clc3( )
setup_clc4( )
Programmable Ramp Generator (PRG)
prgx_status( )
setup_prgx( )
Reset
reset_cpu( )
restart_cause( )
Capture / Compare / PWM (CCP)
clear_pwm1_interrupt( )
clear_pwm2_interrupt( )
clear_pwm3_interrupt( )
clear_pwm4_interrupt( )
clear_pwm5_interrupt( )
clear_pwm6_interrupt( )
disable_pwm1_interrupt( )
disable_pwm2_interrupt( )
disable_pwm3_interrupt( )
disable_pwm4_interrupt( )
disable_pwm5_interrupt( )
disable_pwm6_interrupt( )
enable_pwm1_interrupt( )
enable_pwm2_interrupt( )
enable_pwm3_interrupt( )
enable_pwm4_interrupt( )
enable_pwm5_interrupt( )
enable_pwm6_interrupt( )
get_capture_ccp1( )
get_capture_ccp2( )
get_capture_ccp3( )
get_capture_ccp4( )
get_capture_ccp5( )
get_capture32( )
get_capture32_ccp1( )
get_capture32_ccp2( )
get_capture32_ccp3( )
get_capture32_ccp4( )
get_capture32_ccp5( )
get_capture_event( )
get_capture_time( )
get_timer_ccp1( )
get_timer_ccp2( )
get_timer_ccp3( )
get_timer_ccp4( )
get_timer_ccp5( )
pwm_off( )
pwm_set_duty( )
pwm_set_duty_percent( )
pwm_set_frequency( )
pwm1_interrupt_active( )
pwm2_interrupt_active( )
pwm3_interrupt_active( )
pwm4_interrupt_active( )
pwm5_interrupt_active( )
pwm6_interrupt_active( )
set_ccp1_compare_time( )
set_ccp2_compare_time( )
set_ccp3_compare_time( )
set_ccp4_compare_time( )
set_ccp5_compare_time( )
set_compare_time( )
set_pwm1_duty( )
set_pwm2_duty( )
set_pwm3_duty( )
set_pwm4_duty( )
set_pwm5_duty( )
set_pwm_duty( )
set_pwm1_offset( )
set_pwm2_offset( )
set_pwm3_offset( )
set_pwm4_offset( )
set_pwm5_offset( )
set_pwm6_offset( )
set_pwm1_period( )
set_pwm2_period( )
set_pwm3_period( )
set_pwm4_period( )
set_pwm5_period( )
set_pwm6_period( )
set_pwmx_phase( )
set_timer_ccp1( )
set_timer_ccp2( )
set_timer_ccp3( )
set_timer_ccp4( )
set_timer_ccp5( )
set_timer_ccp6( )
set_timer_period_ccp1( )
set_timer_period_ccp2( )
set_timer_period_ccp3( )
set_timer_period_ccp4( )
set_timer_period_ccp5( )
set_timer_period_ccp6( )
setup_compare( )
setup_pwm1( )
setup_pwm2( )
setup_pwm3( )
setup_pwm4( )
setup_ccp1( )
setup_ccp2( )
setup_ccp3( )
setup_ccp4( )
setup_ccp5( )
setup_ccp6( )
Complementary Output Generator (COG)
cog_restart( )
cog2_restart( )
cog3_restart( )
cog4_restart( )
cog_status( )
cog2_status( )
cog3_status( )
cog4_status( )
set_cog_blanking( )
set_cog2_blanking( )
set_cog3_blanking( )
set_cog4_blanking( )
set_cog_dead_band( )
set_cog2_dead_band( )
set_cog3_dead_band( )
set_cog4_dead_band( )
set_cog_phase( )
set_cog2_phase( )
set_cog3_phase( )
set_cog4_phase( )
setup_cog( )
setup_cog2( )
Complementary Waveform Generator (CWG)
cwg_restart( )
cwg2_restart( )
cwg3_restart( )
cwg_status( )
cwg2_status( )
cwg3_status( )
setup_cwg( )
setup_cwg2( )
setup_cwg3( )
High Speed PWM
get_hspwm_capture( )
get_hspwm_feedback( )
get_hspwm_status( )
hspwm_do_capture( )
hspwm_stop_pwm( )
hspwm_trigger_pwm( )
hspwm_update( )
set_hspwm_duty( )
set_hspwm_duty_adjustment( )
set_hspwm_event( )
set_hspwm_override( )
set_hspwm_period( )
set_hspwm_phase( )
set_hspwm_scaling( )
set_hspwm_secondary_event( )
set_hspwm_trigger_x( )
setup_hspwm( )
setup_hspwm_blanking( )
setup_hspwm_chop_clock( )
setup_hspwm_current_limit( )
setup_hspwm_event( )
setup_hspwm_fault( )
setup_hspwm_feed_forward( )
setup_hspwm_logic_x( )
setup_hspwm_secondary( )
setup_hspwm_sync( )
setup_hspwm_trigger( )
setup_hspwm_unit( )
setup_hspwm_unit_chop_clock( )
Motor PWM
get_motor_pwm_count( )
get_motor_pwm_event( )
set_motor_pwm_duty( )
set_motor_pwm_event( )
set_motor_unit( )
setup_motor_pwm( )
Power PWM
set_power_pwm_override( )
set_power_pwmx_duty( )
setup_power_pwm( )
setup_power_pwm_faults( )
setup_power_pwm_pins( )
Programmable Switch Mode Controller (PSMC)
psmc_blanking( )
psmc_deadband( )
psmc_duty( )
psmc_freq_adjust( )
psmc_modulation( )
psmc_pins( )
psmc_shutdown( )
psmc_sync( )
setup_psmc( )
Standard C Char / String
atof( )
atoi( )
atol( )
atol32( )
isalnum( )
isalpha( )
isamong( )
iscntrl( )
isdigit( )
isgraph( )
islower( )
isprint( )
ispunct( )
isspace( )
isupper( )
isxdigit( )
itoa( )
sprintf( )
strcat( )
strchr( )
strcmp( )
strcoll( )
strcopy( )
strcpy( )
strcspn( )
strerror( )
stricmp( )
strlen( )
strlwr( )
strncat( )
strncmp( )
strncpy( )
strpbrk( )
strrchr( )
strspn( )
strstr( )
strtod( )
strtof( )
strtof48( )
strtok( )
strtol( )
strtoul( )
strxfrm( )
tolower( )
toupper( )
Standard C Math
abs( )
acos( )
asin( )
atan( )
atan2( )
atoe( )
atof( )
atof48( )
atof64( )
atoi( )
atoi32( )
atoi48( )
atoi64( )
atol( )
atol32( )
ceil( )
cos( )
cosh( )
div( )
exp( )
fabs( )
floor( )
fmod( )
frexp( )
labs( )
ldexp( )
ldiv( )
log( )
log10( )
modf( )
pow( )
pwr( )
sin( )
sinh( )
sqrt( )
tan( )
tanh( )
Standard C Memory
calloc( )
free( )
longjmp( )
malloc( )
memchr( )
memcmp( )
memcpy( )
memmove( )
memset( )
offsetof( )
offsetofbit( )
realloc( )
setjmp( )
Standard C Special
bsearch( )
mblen( )
mbstowcs( )
mbtowc( )
nargs( )
qsort( )
rand( )
srand( )
va_arg( )
va_end( )
va_start( )
wcstombs( )
wctomb( )
Active Clock Tuning (ACT)
act_status( )
setup_act( )
Angular Timer (AT)
at_clear_interrupts( )
at_disable_interrupts( )
at_enable_interrupts( )
at_get_capture( )
at_get_missing_pulse_delay( )
at_get_period( )
at_get_phase_counter( )
at_get_resolution( )
at_get_set_point( )
at_get_set_point_error( )
at_get_status( )
at_interrupt_active( )
at_set_compare_time( )
at_set_missing_pulse_delay( )
at_set_resolution( )
at_set_set_point( )
at_setup_cc( )
setup_at( )
Deadman Timer (DMT)
clear_dmt( )
disable_dmt( )
dmt_status( )
enable_dmt( )
read_dmt( )
setup_dmt( )
Delays
delay_cycles( )
delay_ms( )
delay_us( )
pll_locked( )
Interrupts
clear_interrupt( )
disable_interrupts( )
enable_interrupts( )
ext_int_edge( )
interrupt_active( )
interrupt_enabled( )
jump_to_isr( )
Real Time Clock and Calendar (RTC, RTCC)
get_rtcc( )
rtc_alarm_read( )
rtc_alarm_write( )
rtc_read( )
rtc_status( )
rtc_tsx_read( )
rtc_write( )
set_rtcc( )
setup_counters( )
setup_rtc( )
setup_rtc_alarm( )
Signal Measurement Timer (SMT)
setup_smtx( )
smtx_read( )
smtx_reset_timer( )
smtx_start( )
smtx_status( )
smtx_stop( )
smtx_write( )
smtx_update( )
Sleep
sleep( )
sleep_ulpwu( )
Timers
get_rtcc( )
get_ticks( )
get_timerA( )
get_timerB( )
get_timerx( )
get_timerxy( )
set_rtcc( )
set_ticks( )
set_timerA( )
set_timerB( )
set_timerx( )
set_timerxy( )
setup_counters( )
setup_timer_0( )
setup_timer_1( )
setup_timer_2( )
setup_timer_3( )
setup_timer_4( )
setup_timer_5( )
setup_timer_A( )
setup_timer_B( )
setup_timerx( )
Watch Dog Timer (WDT)
get_wdt( )
release_io( )
restart_wdt( )
setup_counters( )
setup_wdt( )
Capacitive Touch Pad
touchpad_getc( )
touchpad_hit( )
touchpad_state( )
Internal LCD
lcd_contrast( )
lcd_load( )
lcd_symbol( )
setup_lcd( )
USB
usb_attach( )
usb_attached( )
usb_cdc_getc( )
usb_cdc_kbhit( )
usb_cdc_putc( )
usb_cdc_putc_fast( )
usb_cdc_putready( )
usb_cdc_puts( )
usb_detach( )
usb_enumerated( )
usb_get_packet( )
usb_gets( )
usb_init( )
usb_init_cs( )
usb_kbhit( )
usb_put_packet( )
usb_puts( )
usb_task( )
Brownout
brownout_enable( )
restart_cause( )
Constant Current Source
setup_current_source( )
Voltage Reference / Comparator
setup_comparator( )
setup_low_volt_detect( )
setup_vref( )
setup_vref2( )
Zero-Cross Detection (ZCD)
setup_zcd( )
zcd_status( )