PIC-C Compilers with Windows IDE (PCW)

 
$324.95 Add this item to your shopping cart.
In Stock

"I use these compilers every day. The worst thing about them is that my clients become efficient with them so quickly that I seldom get a second firmware development project.
Gary Smithson
"

PCW is a feature rich Integrated Development Environment (IDE) and two PIC-C Compilers for the Microchip PIC Microcontroller. It provides many utilities to aid in firmware design, development, and delivery. PCW is literally the stand-alone PCB (Base-Line 12-bit) and PCM (Mid-Range 14-bit) PIC compilers seamlessly combined with a powerful Windows IDE. Since PCB and PCM are fundamental components of PCW, the C language syntax and built-in functions are identical across the entire compiler family. PCW's graphical interface helps users at varying experience levels perform basic and advanced development tasks. In addition to it's user friendly environment PCW comes complete with source editor, extensive interactive help, project wizards, special window views, and project statistics. As an added bonus, it also includes dozens of ready to run example programs and source code drivers for many common PICmicro peripherals. This IDE/compiler combination is the perfect companion to our PIC Prototyping Board. In fact, the example programs bundled with PCW were specifically written to run on this hardware. Each example program contains wiring and jumper settings referencing the prototype strip on the PIC Prototyping Board.

PCW's Device Selection Assistant and New Project Wizard are a great place to start a new development. The Device Selection Assistant narrows the field of appropriate PICmicros based on minimum device features required by the design. The New Project Wizard generates an initial .H and .C file for your project based on selections made from eight categories regarding device features and project requirements. The wizard will, for example, determine fuse settings, interactively calculate and show timer options based on your clock settings, produce skeleton code for interrupts, allocate pins for device drivers and establish port pin direction and names.



The C Aware Editor features context sensitive help, syntax color highlighting, tab control, bookmarks, and searches for matching } or ) all designed for easy accurate code entry. The IDE provides access to the selected compiler, call tree, symbol table, and other helpful screens. It also includes a direct interface to the configured device programmer and debugger.



Compiled source code yields a statistics window which shows the overall ROM and RAM used, the number of lines and statements in each file, the bytes of ROM and RAM used by each function, and the bytes used and remaining in each code page. Percentages are also available.



Special information viewers include quick and easy access to Data Sheets, valid fuses and interrupts per device, a Hex file disassembler, a COD file interpreter, and an advanced source/list File Compare. The File Compare viewer is shown here.
 

PCW Features:

Compiles for both Base-Line (12-bit) and Mid-Range (14-bit) PICmicro devices
Includes command line versions of both PCB and PCM compilers
C Aware Editor
Multi-Document View presents multiple source files simultaneously
Context Sensitive Help
Find/Replace
Source Code Bookmarking
User Configurable:
Editor Toolbar
Syntax color highlighting
Automatic Indent
Editor font and font size
Include directories
Output file formats
Debugger integration
Device Programmer integration
PIC Microcontroller Selection Assistant
New Project Wizard
Valid fuse list per device
Valid interrupt list per device
Special Viewers for Valid fuses/interrupts, COD file interpreter, file compare and more
Includes Serial Port Monitor Utility
Includes Hex file Disassembler
Project files compatible with Microchip's MPLAB IDE
Includes complete 190+ page Reference Manual in addition to electronic version

 

Overview:

This family of PIC-C Compilers gives a firmware developer the capability to quickly produce very efficient code from the easily maintainable, high level, C Language. The compilers are based on the standard Kernighan-Ritchie C Language but also include powerful language extensions and are fully optimized for use with Microchip PIC Microcontrollers.

Language extensions include, but are not limited to, built-in functions to access the PICmicro hardware such as, read_adc() to read a value from the A/D converter, #use RS232 to generate a hardware or software UART, and write_eeprom() for data storage to PIC-resident nonvolatile memory. Additionally, functions such as input() and output_high() will read and write the I/O ports while automatically and dynamically maintaining the port direction registers.

Variables, including structures, may be directly mapped to control registers and I/O ports for source code readability and easy management of those hardware resources. When the contents of these "variables" are changed, the data is actually written directly to the hardware. In this manner hardware peripherals with unique data structures are efficiently managed by name.

Functions may be implemented inline or separate allowing optimization for either code size or speed of execution. In order to relieve the developer of stack depth issues, function parameters are passed in reusable registers. Inline functions with reference parameters are implemented efficiently with no memory overhead.

Interrupts (on supporting devices) are easily established and serviced. The user essentially enables a list of interrupts by name and provides an interrupt function for each. The compiler will call the appropriate interrupt function when that interrupt is detected. Code to save and restore the machine state and clear the interrupt request is automatically generated as well.

During the linking process the program structure, including the call tree, is analyzed. Functions contained in #included libraries but never called are automatically excluded from the final code output. Functions that call one another frequently are grouped together in the same code page. Calls across pages are handled automatically by the compiler making code page selection transparent to the user. RAM banks are also switched automatically. RAM is allocated optimally by using the call tree to determine how memory locations can be reused. Constant strings and tables are saved in the device's program memory in order to conserve RAM.

The output Hex and debug file formats are selectable and compatible with popular programmers and emulators, including MPLAB IDE, for source-level debugging.

The fact that these compilers are flexible and configurable to the user's level of experience makes them a great choice for both the professional and hobbyist.

Features:

Predefined header file for each supported device
Standard C and language extensions optimized to produce very efficient code
Efficient function implementation allows call trees deeper than hardware stack
Inline function support saves hardware stack
Reference parameter support improves code readability and inline function efficiency
Selectable automatic/manual architecture determination of #inline vs. #separate
1, 8, 16, and 32-bit integer types and 32-bit Floating Point
Standard 1-bit type permits true Boolean oriented code generation
8 and 16-bit pointer support
Selectable automatic/manual port direction handling
Interrupt functions supported on all devices other than Base-Line (12-bit) devices
Selectable automatic/manual interrupt handling
Automatic generation of interrupt startup and cleanup code
Automatic interrupt trigger to interrupt function mapping
Constants saved in program memory conserving RAM
Linker automatically handles multiple code pages
Linker automatically handles multiple RAM banks
Supports embedded Assembly code
Assembly code may reference C variables
C variable placement at absolute addresses with #bit and #byte
Built-in Libraries for RS232 serial I/O, I2C, discrete I/O, and precision delays (all devices)
Built-in Functions for A/D, Timers, EEPROM, SSP, PSP, USB, I2C and more (supporting devices)
Formatted printf displays in Hex or Decimal on user selected output stream
Standard compiler outputs are C/Assembly listing, RAM memory map, Call Tree, errors, and statistics
Selectable Hex file format insures compatibility with device programmers
Integrates with MPLAB IDE and other simulators/emulators for source-level debugging
Includes dozens of ready to run example programs
Source code drivers included for LCD modules, keypads, 24xx/93xx Serial EEPROM's, X10, DS1302/NJU6355 Real Time Clocks, Dallas Touch Memory Devices, DS2223/PCF8570 Serial SRAM, LTC1298/PCF8591 A/D converters, temperature sensors, digital pots, I/O expanders and much more
Available as cost effective stand-alone command-line compiler or integrated editor/compiler
Includes 30 days of FREE updates via the Internet

Standard C Syntax:

if, else, while, do, switch, case, for, return, goto, break, continue
!   ~   ++   --   +   -   ,   &   |
*   /   %   <<   >>   ^   &&   ||   ?:
<   <=   >   >=   ==   !=
=   +=   -=   *=   /=   %=   >>=   <<=   &=   ^=   |=
typedef, static, auto, const, enum, struct, union
Arrays with up to 5 subscripts
Structures and Unions may be nested
Custom bit fields (1-8 bits) within structures
ENUMurated types
CONSTant variables, arrays and strings
Full function parameter support (any number)
Some support for C++ reference parameters

Built-in Functions:

Standard C Char
atoi()
atol()
atof()
atoi32()
tolower()
toupper()
isalnum()
isalpha()
isamoung()
isdigit()
islower()
isspace()
isupper()
isxdigit()
strlen()
strcpy()
strncpy()
strcmp()
stricmp()
strncmp()
strcat()
strstr()
strchr()
strrchr()
strtok()
strspn()
strcspn()
strpbrk()
strlwr()
sprintf()

Delays
delay_cycles()
delay_us()
delay_ms()

Capture/Compare/PWM
setup_ccpX()
set_pwmX_duty()

Processor Controls
sleep()
reset_cpu()
restart_cause()
disable_interrupts()
enable_interrupts()
ext_int_edge()
read_bank()
write_bank()
label_address()
goto_address()

Error Trapping
perror()
assert()
Standard C Memory
memset()
memcpy()
offsetof()
offsetofbit()

RS232 I/O
getc()
putc()
gets()
puts()
fgetc()
fputc()
fgets()
fputs()
kbhit()
printf()
fprintf()
set_uart_speed()

I2C I/O
i2c_start()
i2c_stop()
i2c_read()
i2c_write()
i2c_poll()

Discrete I/O
output_low()
output_high()
output_float()
output_bit()
input()
output_X()
input_X()
port_b_pullups()
set_tris_X()

SPI I/O
setup_spi()
spi_read()
spi_write()
spi_data_is_in()

Parallel Slave I/O
setup_psp()
psp_input_full()
psp_output_full()
psp_overflow()

Timers
setup_timer_X()
set_timer_X()
get_timer_X()
setup_counters()
setup_wdt()
restart_wdt()
Standard C Math
sqrt()
sin()
cos()
tan()
sinh()
cosh()
tanh()
asin()
acos()
atan()
atan2()
abs()
labs()
fabs()
exp()
frexp()
ldexp()
pow()
log()
log10()
fmod()
modf()
ceil()
floor()

A/D Conversion
setup_adc_ports()
setup_adc()
set_adc_channel()
read_adc()

Analog Compare
setup_comparator()

Voltage Ref
setup_vref()

Internal EEPROM
read_eeprom()
write_eeprom()
read_program_eeprom()
write_program_eeprom()
read_calibration()

Bit/Byte Manipulation
shift_right()
shift_left()
rotate_right()
rotate_left()
bit_clear()
bit_set()
bit_test()
swap()
make8()
make16()
make32()

Pre-Processor:

Standard C
#define
#undef
#include
#if
#else
#elif
#endif
#ifdef
#ifndef
#type
#list
#nolist
#error
#pragma

Function Qualifiers
#inline
#seperate
#priority
#int_XXXXX
#int_global
#int_default

Device Specification
#device
#fuses
#id
Built-In Libraries
#use delay
#use rs232
#use i2c
#use standard_io
#use fixed_io
#use fast_io

Memory Control
#bit
#byte
#org
#locate
#reserve
#rom
#zero_ram

Compiler Control
#case
#opt
#asm
#endasm

Predefined Identifiers
__device__
__date__
__time__
__file__
__line__
__pcb__
__pcm__
__pch__
 

Related Items:

PIC Prototyping Board
2 line x 16 character backlit LCD Module and 4 row x 3 column Keypad kit
PIC-C Compiler Maintenance
PIC16F877 Microcontroller
Warp13 Device Programmer

keywords: CCSC, CCS C, PICC, PIC C, ANSI C, Custom Computer Services, CCS, MPLAB


ince 1992, theByteFactory has provided high quality software and firmware solutions at the technically advanced level that today’s products require and consumers demand.

We have expertise in the fields of Factory Automation and Monitoring using peer-to-peer networked nodes, embedded firmware development with a variety of microcontrollers and languages from Assembly to C, Windows applications ranging from local stand-alone to Distributed COM, and the development of multi-product Automatic Test Equipment.


home | products | services | download | contact | site | links | webrings