 |
PIC-C Compilers with Windows IDE (PCW)
| |
|
$324.95
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:
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.
|