Download as pdf or txt
Download as pdf or txt
You are on page 1of 91

1620 CCS

Using the CCS C Compiler for Rapid


Development of Microcontroller
Applications

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

Class Objective
After this class you will:

Be able to use your C knowledge and


write applications using the CCS C
Compiler
Know the ways the CCS C Compiler
speeds up development time
Develop new application and coding
ideas

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

Agenda

Compiler Overview

Compiler Methodology

C differences, data types, memory


allocation, required setup.

Built-in functions

Design goals, compiler products

GPIO, delays, serial, peripherals

Interrupts

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

Agenda
Hands-On Labs

Lab 1: 0 to blinky LED in 60


seconds
Lab 2: The CCS IDE debugger
Lab 3: Analog to digital peripheral
Lab 4: Stopwatch using interrupts

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

Compiler Overview

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

Design Goals

Ease of use compile and go!


Quick development time

Built-in functions, libraries, examples

Easy PIC MCU to PIC MCU


migration
Optimization comparable to
assembly

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

CCS Command Line Compiler

Product Line:

PCB - Baseline PIC MCUs


PCM - Mid-range PIC MCUs
PCH - PIC18 Family PIC MCUs
PCD - PIC24/dsPIC30/dsPIC33

Integrates into MPLAB IDE


Linux and Windows versions

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

PCW Windows IDE

C Aware Editor
Debugging
Integrated RTOS
Linker and re-locatable objects
Document generator
Flow chart editor

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

CCS Support Policy

E-mail / phone support

Yearly maintenance contract

Duration is unlimited
Updates, new devices, drivers
Can be extended any time

Large customer base


Rapid releases (once a week)

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

Compiler Demonstration

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

10

Hands On Lab #1
Blinky LED

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

11

Lab 1 Objectives

Hands-on experience with


compiler
Use tools and development
board
Use CCS Project Wizard
Create blinky LED

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

12

Prototyping Hardware

PIC16F887

ICD Connector
Pot on AN0
Button on RA4
LEDs on RA4, RB4 and RB5
RS232 driver and mini connector
Header to all GPIO

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

13

Wizard Overview

Creates and initial framework


Assists in the initial
configuration of peripherals and
devices
Configure screen for all
peripherals and popular external
devices
Windows IDE only

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

14

Lab 1 Hints

LED will blink at 1Hz rate


Follow handout
Verify:

Correct PIC MCU selected


Correct #FUSES selected
Correct #use delay() specified

Bored? Try Extra Credit

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

16

Compiler
Methodology

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

17

Differences to common C

Case in-sensitive

#case will make it sensitive

Variables not initialized to zero


const places variable into ROM
No literal const string parameters

Ex: Somefunc(HELLO);
#device PASS_STRINGS=IN_RAM

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

18

ANSI Non-Compliance

No fopen(), fclose(), etc

fprintf(), fputc(), fgetc() is supported

printf() formatting string must be


known at compile time
Recursion allowed on some PIC
MCUs

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

19

Data Types
PCB/PCM/PCH
short
1-bit
char
Unsigned 8-bit
int
Unsigned 8-bit
long
Unsigned 16-bit
long long Unsigned 32-bit
float
MCHP 32-bit
double
NO SUPPORT
2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

PCD
1-bit
Unsigned 8-bit
Signed 16-bit
Signed 32-bit
Signed 64-bit
IEEE 32-bit
IEEE 64-bit
Slide

20

Data Types

#type can change default size

Optimization tips

#type short=8, int=16, long=32


Use int over char, byte, long
If you must use float, use one type

Non-standard types

int1, int8, int16, int32, int48, int64


float32, float48, float64
__address__

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

21

Bit Arrays

Array of bits:

int1 flags[30];
flags[i] = TRUE;
if (flags[10]) { /* some code */ }

Bits are packed


Pointers not supported

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

22

Fixed Point Decimal

Decimals with integers, not


floats!

Faster, Smaller
100% precision

Stores value in 10y power


Declaration:

[type] _fixed(y) [declarator]


int16 _fixed(2) money

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

23

Fixed Point Examples

int16 _fixed(2) money;

Range: 0.00 to 655.35

money = 20.50;
money += 5; //adds 5.00
money += value;
printf(%w, money);

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

24

RAM Allocation

First come, first served in this order:


1.

2.
3.

Globals
Static
Local

Call tree finds RAM to be reused


User can force RAM placement
Variable cannot be larger than bank
Enhanced PIC16, PIC18, 16-bit PIC MCUs

exempt
2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

25

const vs. rom

const read-only, has two modes:

rom places variable in ROM

#device CONST=ROM
(DEFAULT)
#device CONST=READ_ONLY (RAM)

rom writable if supported by MCU

Examples

const char string1[] = Hello;


rom char string2[] = Hello;

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

26

Program Space Visibility (PSV)

Mix RAM and ROM pointers


#device PSV=16

PIC24, dsPIC30, dsPIC33 only

const/rom variables made PSV


friendly
Example:
rom char str[] = Hello;
char *ptr = str;

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

27

Borrowed from C++


Reference Parameters

Pass address, not value

Values can be changed in function


Similar to using pointers
Efficient for large structures

Declare with &


void Inc(int &i) {
i++;
}

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

28

Borrowed from C++


Default Parameters

Default value passed to function


if no value specified
Examples:

void Get(char *c, int time=200);


Get(&c); //time will be 200
Get(&c, 500); //time will be 500

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

29

Borrowed from C++


Function Overloading

Multiple functions, same name


Different parameters
Example:

int Inc(int *i);


long Inc(long *l);
float Inc(float *f);

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

30

Output Files

HEX Compiled Application


COF Debug Application
ERR Compile output messages
LST C to Assembly comparison
SYM Memory Map
STA Statistics
TRE Call Tree

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

31

Programming Details
Required Setup

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

32

Pre-processor

Design Goal: All in front of you

Everything is in the source code


No linker scripts

Pre-processor commands
change compiler-behaviour:

Methodology, ROM/RAM placement,


library configuration

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

33

#device

Loads personality for PIC MCU

Can alter low-level specifics

#device PIC18F4520
#device ICD=TRUE

Device header files have #device


If linking, must be in each unit

Put it in a common include file

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

34

#fuses

Set the configuration bits

#fuses HS, NOWDT, NOLVP

To get list of valid fuses:

In IDE, use View Valid Fuses window


Header file for the device has list,
view fuses.txt for descriptions

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

35

#use delay

Set PIC MCU clock speed

Configures compilers libraries

#use delay(clock=value)
Serial, Delays, Timers

Configures PLL and config bits

#use delay(crystal=8Mhz, clock=40Mhz)


#use delay(crystal=8Mhz, USB_FAST)

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

36

Programming Details
Memory Placement

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

37

#byte / #word

Force location of RAM:


int val;
#byte val=0xA0

Overlaying variable onto SFR:


#byte STATUS=0x03
#word TMR1=0x0E

Repeat, using getenv():


#byte STATUS=getenv(SFR:STATUS)

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

38

#bit

#bit ident=X.b

Declares boolean at address X, bit b


#bit CARRY=STATUS.0
#bit CARRY=getenv(BIT:C)

Dont forget:

Compiler will pack int1 variables


You can use struct to pack bits

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

39

#org

Fix placement in ROM


#org start, end

Place following function/constant in


specified program memory

#org 0x400,0x4FF
SomeFunction() { /*code*/ }
#org 0x500, 0x5FF
const someStruct[] = { }
2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

40

Hands On Lab #2
Debugging a Calculator
Application

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

41

Lab 2 Objectives

Learn basic debugging use

Breakpoints
Watches
ROM and RAM view

Learn advanced debugging use

Trace
Logging
1Wire RS232 on RB3

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

42

Lab 2 Directions

Program provided is a simple


calculator
Follow the directions on the
handout

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

43

BREAK TIME!

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

44

Programming Details
Built-In Functions

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

45

Built-In Functions

Compiler provides functions to:

Control Peripherals (A/D, Serial, etc)


Perform logic optimized to PIC MCU

Internal to compiler, not linked


Simplify PIC MCU migration
Follow any errata workarounds

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

46

#if defined(__PIC24__)
#include <24FJ64GA004.h>
#elif defined(__PIC18__)
#include <18F4520.h>
#elif defined(__PIC16__)
#include <16F887.h>
#endif
#fuses HS, NOWDT, NOLVP
#use delay(clock=20000000)
void main(void) {
while(TRUE) {
output_toggle(PIN_C0);
delay_ms(500);
}
}

getenv()

Assists in making portable code


Returns chip information

ROM size, RAM available,


peripherals available, config bits set,
and more

Conditionally compile options:


#if getenv(ADC_CHANNELS) > 0
setup_adc_ports(NO_ANALOGS);
#endif

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

48

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

49

Built-In Functions: GPIO

output_high(PIN_XX)
output_low(PIN_XX)
output_toggle(PIN_XX)

Sets the pin to desired level


Ex: PIN_C0, PIN_B5 (in H file)

bool = input(PIN_XX)

Read value of pin

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

50

Built-In Functions: GPIO

output_X(value)

byte = input_X()

Sets the port X (A to J) to the value


Read value of port X

set_tris_X(value)
val = get_tris_X()

Get/Set the tristate setting

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

51

Built-In Functions: GPIO

#use standard_io(X)

#use fast_io(X)

Output functions set TRIS to output,


Input functions set TRIS to input
This is the default operation
Compiler does not alter TRIS

#use fixed_io(port_outputs=pins)

#use fixed_io(d_outputs=PIN_D7)

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

52

Built-In Functions: Delays

delay_cycles(x)
delay_us(x)
delay_ms(x)

Uses a series of loops and NOPs


Timing based on #use delay()
Multiple #use delay() allowed

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

53

#use delay(clock=125K)
//1 second delay @ 125kHz
void Delay1s125Khz(void) {
delay_ms(1000);
}
#use delay(clock=8M)

//1 second delay @ 8MHz


void Delay1s8Mhz(void) {
delay_ms(1000);
}

#use timer()

Creates a timing system


#use timer()

tick, set timing period in us, ms or s


timer, specify which timer to use
bits, size of tick counter
NOISR, ISR

TICKS_PER_SECOND defined

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

55

#use timer() Example


#use timer(timer=0, tick=50ms, bits=32)

unsigned int32 start;


start = get_ticks();
while (

{
}

(get_ticks() start) <


(TICKS_PER_SECOND*3)

// code processed for 3 seconds

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

56

Built-In Functions
Serial Libraries

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

57

Pop Quiz
You need to add another
serial port to your project,
but you have used all of the
PIC MCUs peripherals.
What do you do?
2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

58

#use rs232()

Powerful UART library


#use rs232(baud=x,
xmit=PIN_XX, rcv=PIN_XX,
stream=yyyy)

TX/RX on any pins


Enable bit, parity, collision detect,
open collector mode, receive timeout,
and more options

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

59

UART (Continued)

Standard C I/O

Standard C I/O, streams

printf(string, );
char = getc();
fprintf(stream, string, );
char = fgetc(stream);

bool = kbhit(stream);
setup_uart(newBaud, stream)

Dynamically change the UART

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

60

Dual UART Example


#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,
stream=HW_UART)
#use rs232(baud=9600, xmit=PIN_D0, rcv=PIN_B0,
stream=SW_UART, disable_ints)
fprintf(HW_UART, HELLO HARDWARE UART\r\n);
fprintf(SW_UART, HELLO SOFTWARE UART\r\n);
if (kbhit(HW_UART)) {
c=fgetc(HW_UART);
fputc(c,SW_UART);
}
if (kbhit(SW_UART)) {
c=fgetc(SW_UART);
fputc(c,HW_UART);
}
2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

61

printf() Redirection

printf() can be redirected to a


user-defined function
Example:
void LCDPut(char c);
printf(LCDPut, %U, val);

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

62

Buffering and Flow Control

#use rs232() parameters

RECEIVE_BUFFER=x and
TRANSMIT_BUFFER=x sets size
RTS=PIN_XX sets RTS flow control
CTS=PIN_XX sets CTS flow control
API doesnt change (getc(), putc())
ISR use optional

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

63

2
I C

Use any pins or multiple ports


#use spi(parameters)

and SPI Support

Parameters for pins, speed, streams


spi_xfer()

#use i2c(parameters)

Config master/slave, speed, pins, streams


i2c_start(), i2c_stop(), i2c_write(),
i2c_read()

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

64

Built-In Functions
Peripherals and More

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

65

#use_pwm()

Portable, easy to use


library for PWM control
#use pwm(parameters)

Set pin, timer, time base, frequency,


and more

set_pwm_duty_percent(val)
set_pwm_frequency(freq)

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

66

#use capture()

Portable library for using


capture peripheral
#use capture(parameters)

Set pin, timer, time base, edge, etc.


#defines math helper values

boolean = get_capture_event()
time = get_capture_time()

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

67

#use touchpad()

Capacitive Touch (CSM, CTMU)


#use touchpad()

Options for current range, frequency


threshold, scan time, character
output, and more
#use touchpad(PIN_B0=A)

boolean = touchpad_hit()
char = touchpad_getc()

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

68

A/D Converter

setup_adc(mode)

setup_adc_ports(config)

Configure pins for analog or digital

set_adc_channel(channel)

Configure the ADC

Set the channel for subsequent reads

val = read_adc()

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

69

Overview of Other
Functions

#use rtos() - RTOS


read_eeprom(), write_eeprom()
access internal EEPROM
#pin_select(), pin_select()
configure reprogrammable pins
setup_crc(), crc_calc() perform
CRC calculations

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

70

Getting Help
So many peripherals,
how do I get help?
1.

2.

In PCW IDE, Press F1 for


context sensitive help on
keyword
In manual, look for section
labeled Functional Overviews

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

71

Dont forget
Drivers and Examples!

Drivers provided for complex features


or external peripherals

EEPROMs, LCDs, USB, FAT, etc.

Many example programs


Always kept up-to-date
Before you start a project, examine the
libraries and example programs CCS
provides you to reduce your
development time

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

72

Lab #3
Analog to Digital Conversion

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

73

Lab 3 Objective

Read A/D Conversion


Light LEDs based upon voltage

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

74

Lab 3 Hints

Handout has help, finished


example
ADC Troubles?

Did you enable A/D with


setup_adc()?
Did you set the channel?

Bored? Try Extra Credit

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

75

Programming Details
Interrupts

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

76

Pop Quiz
What does your ISR
need to do?

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

77

Interrupt Service Routine


CCS C provides an ISR

Saves status and scratch registers


Checks enable/flags, goes to user
ISR function for that flag
Clears interrupt flag (if needed)
Restores status/scratch registers

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

78

ISR API

enable_interrupts(INT_*)

enable_interrupts(GLOBAL)
enable_interrupts(INT_TIMER0)

disable_interrupts(INT_*)
clear_interrupt(INT_*)
bool = interrupt_active(INT_*)

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

79

ISR API

#INT_*

Follow function used for that ISR


#INT_TIMER0
void isr_timer0(void)
{
//HANDLE TIMER0 OVERFLOW
}

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

80

ISR Special Identifiers

#INT_GLOBAL

Function overrides CCS ISR


User must save and restore all
registers altered by their ISR (W,
STATUS, scratch used by compiler,
etc.)

#INT_DEFAULT

Traps unknown interrupt

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

81

ISR Options

Keywords that may follow #INT_*:

high (PIC18) Interrupt is high priority


fast (PIC18) Like high, but no save
fast (PCD) Uses shadow registers
level=(0..7) (PCD) sets ISR level
noclear Will not clear interrupt flags

#device HIGH_INTS=TRUE

Must set to use high ISR on PIC18

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

82

#include <18F46K22.H>
#device HIGH_INTS=TRUE
#INT_RDA HIGH
void IsrUartRx(void)
{
/* some code */
}
#INT_TIMER0 NOCLEAR
Void IsrTimer0(void)
{
clear_interrupt(INT_TIMER0);
//some code
}
void main(void)
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
// some code
}

Lab #4
Interrupts

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

84

Lab 4: Objectives

Learn how to use the CCS ISR


Learn how the CCS built-in
functions control Timer0 and
GPIO
Implement a stopwatch that
measures button press time

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

85

Lab 4 Hints

Handout has help and solution


TIPS:

Press F1 to get compiler help manual


#INT_TIMER0
setup_timer_0(RTCC_DIV_256)
enable_interrupts(xxxx)
input(PIN_XX)

Bored? Try Extra Credit

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

86

Class Summary

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

87

Class Summary

Leaving this class you should:

Be able to use your C knowledge and


write applications using the CCS C
Compiler
Know the ways the CCS C Compiler
speeds up development time
Develop new application and coding
ideas

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

88

Q&A

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

89

Thank You!
Please fill out evaluation form.

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

90

Trademarks
The Microchip name and logo, the Microchip logo, dsPIC, KeeLoq, KeeLoq logo, MPLAB,
PIC, PICmicro, PICSTART, PIC32 logo, rfPIC and UNI/O are registered trademarks of
Microchip Technology Incorporated in the U.S.A. and other countries.
FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB, SEEVAL
and The Embedded Control Solutions Company are registered trademarks of Microchip
Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, chipKIT, chipKIT logo, CodeGuard,
dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense,
HI-TIDE, In-Circuit Serial Programming, ICSP, Mindi, MiWi, MPASM, MPLAB Certified
logo, MPLIB, MPLINK, mTouch, Omniscient Code Generation, PICC, PICC-18, PICDEM,
PICDEM.net, PICkit, PICtail, REAL ICE, rfLAB, Select Mode, Total Endurance, TSHARC,
UniWinDriver, WiperLock and ZENA are trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.
All other trademarks mentioned herein are property of their respective companies.
2012, Microchip Technology Incorporated, All Rights Reserved.

2012 Microchip Technology Incorporated. All Rights Reserved.

1620 CCS

Slide

91

You might also like