ccs pic 'c' compiler tutorial

Post on 18-Nov-2014

563 Views

Category:

Documents

32 Downloads

Preview:

Click to see full reader

DESCRIPTION

using PIC CCS Compiler and creating hex file

TRANSCRIPT

IN THE NAME OF ALLAH, THE MOST GRACIOUS, THE MOST MERCIFUL

CCS PIC “C” COMPILER TUTORIAL

ADEEL ANWAR69th E.C

Created on : 2nd MAY 2010

COLLEGE OF AERONAUTICAL ENGEENERING CAE

(adeelanwr@gmail.com)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

• I am making this tutorial with the motivation that, it will be helpful for the fellow students and it’s a small contribution toward students society.

• I hope and expect that the students coming afterwards will contribute further and we will improve collectively by helping each other.

CONTENTS

• Basic Tutorial• Pic wizard• Pic Device Selector• Fuses and Interrupts list• Serial Port Moniter

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Note: “Basic Tutorial” (for Beginners) is sufficient for creating and compiling the complete project. Next topics (Pic wizard & onwards) describe the extra utilities provided by the compiler that make some tasks easier.

Basic Tutorial

• Creating new Project • Adding Source file • Writing and editing source file• Compilation• RAM/ROM percentage • View generated assembly code (optional) • Generated files

COLLEGE OF AERONAUTICAL ENGEENERING CAE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WE WANT TO CREATE A NEW

PROJECT

ADD SOURCE FILE TO THE

PROJECT

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WRITE NAME OF SOURCE FILE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

BLANK SOURCE FILE“prg2.c”

START WRITING CODE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

HEADER FILES SPECIFING “CHIP NO” ,

“CRYSTAL FREQUENCY” & “SERIAL PORT PARAMETERS”

RESPECTIVELY MAIN LOOP

INFINITE LOOP TO MAKE u-CONTROLLER WORK FROM POWER

ON TILL OFF

COLLEGE OF AERONAUTICAL ENGEENERING CAE

OBSERVE THESE “-” SIGNS WITH “main” “while” AND “for”

THERE IS ALSO AN ENDING SYMBOL

GENERALLY THESE SYMBOLS ARE ATTACHED TO ALL THE “LOOPS” , “IF

ELSE ” OR ANYSTATEMENTS INSIDE “{ }”

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK ON “-” SIGN

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SIGN CHANGES TO “+” AND ALL THE STATEMENTS

INSIDE “for” LOOP ARE MINIMIZED

USE OF THESE SMALL TIPS MAKES THE CODE MORE READABLE AND EASIER TO DEBUG

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WE HAVE WRITTEN THE CODE NOW WE

WANT TO COMPILE IT

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

COMPILATION IN PROGRESS

“RAM” AND “ROM” PERCENTAGE INDICATE HOW MUCH RAM OR ROM OF MICROCONTROLLER, THE WRITTEN CODE WILL USE

Note:. This feature helps programmer to optimize code and use of u-controller resources. As this is a small program and it is not consuming much Ram/Rom of “16F628A” so, 16F628A should not be used for this particular program during mass

manufacturing as device is under utilized (costly)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

AFTER COMPILATION IS COMPLETE ERRORS OR WARNINGS WILL

APPEAR HERE. IF ANY ERROR THEN PROGRAM NEEDS TO BE

CORRECTED BUT WARNING MAY BE NEGLECTED

COLLEGE OF AERONAUTICAL ENGEENERING CAE

IF USER WANT TO SEE THE ASSEMBLY CODE GENERATED BY WRITTEN “C”

CODE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

THE “C” STATEMENT “output_D(0)” IS

CONVERTED TO FOUR ASSEMBLY STATEMENTS

A SMALL “C” PROGRAM IS CONVERTED TO “216” ASSEMBLY STATEMENTS (ALTHOUGH THERE ARE SOME COMMENTS LINES). DUE TO THIS REASON

NOWADAYS u-CONTROLLER ARE MOSTLY PROGRAMMED IN “C” NOT ASSEMBLY

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SOURCE FILE

COF FILE

HEX FILE

HEADER FILE (2ND C FILE AMONG ALL

FILES)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

PIC WIZARD

COLLEGE OF AERONAUTICAL ENGEENERING CAE

INTRODUCTION

• Pic wizard is a useful tool that helps the user for initializing peripherals and writing code for PIC u-Controller.

• Different peripherals options/settings are presented in form of Graphical User Interface (GUI).

• It creates the basic layout of the code that include different interrupt service routines, initialization parameters for timers, interrupts and other device peripherals etc.

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WRITE NAME OF SOURCE FILE

WIZARD WINDOW

FEATURES WINDOW

FEATURES OPTIONS WINDOW

COLLEGE OF AERONAUTICAL ENGEENERING CAE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

GENERAL (1)

SELECT DEVICE NOTE: ALL FURTHER

FEATURE SELECTION OPTIONS WILL BE

BASED ON SELECTED DEVICE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

OSCILLATOR

OTHER START-UP

/PROGRAMMING OPTIONS

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)USER WANTS TO USE RS-

232

SELECT RS-232 OPTIONS

CLICK (1)

TIMER 1 DISABLED

TIMER 0 WITH .2 us Resol. AND 51.2 us OVERFLOW TIME

TIMER 2 DISABLED

COLLEGE OF AERONAUTICAL ENGEENERING CAE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

TIMER 1 ENABLED

TIMER 1 SETTINGS

NOTE: RESOLUTION EFFECTS OVERFLOW

TIME (COMPARE PREVIOUS)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

EACH TIMER SETTINGS GENERATES A CODE THAT

WILL BE ADDED TO SOURCE FILE AT THE END OF WIZARD

CLICK (1)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

SELECT A/D CONVERTERS

CURRENTLY 8-BIT (0-255) MODE IS

SELECTED

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

SELECT INTERRUPTS

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

AS WE HAVE SELECTED EXTERNAL INTERRUPT (PREVIOUS PAGE). THIS

CODE WILL BE ADDED TO SOURCE FILE.

COLLEGE OF AERONAUTICAL ENGEENERING CAE

IF THERE ARE NO MORE FEATURES THAT USER WANT TO USE CLICK

“OK”

COLLEGE OF AERONAUTICAL ENGEENERING CAE

INITILIZATION CODE GENERATED BY WIZARD TO

SET REQUIRED PARAMETERS OF TIMER/INTERRUPT & A/D

CONVERTER etc.

WRITE EXTERNAL INTERRUPT

SERVICE ROUTINE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

START WRITING CODE HERE

(MAIN LOOP etc.)

THERE IS AN INCLUDE FILE (HEADER FILE) AT

THE BEGINNING OF EACH SOURCE FILE

CREATED BY WIZARD

COLLEGE OF AERONAUTICAL ENGEENERING CAE

HEADER FILE HAS INFORMATION ABOUT THE SELECTED DEVICE,CLOCK,RS-232 PINS, A/D CONVERTERS

& FUSES etc…

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

GENERALLY THE SECOND “C FILE” IN THE LIST IS HEADER

FILE (CLICK)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

“prog1.h” IS HEADER FILE.

NOTE: THIS FILE IS CREATED SEPERATELY SO THAT

READABILITY OF THE “source file” IS IMPROVED

CCS PICC DEVICE SELECTOR

COLLEGE OF AERONAUTICAL ENGEENERING CAE

INTRODUCTION

• A large PIC family provides user, the flexibility to select the chip which fulfill the requirement optimally.

• The devices which have large features are more costly. So, from Economical point of view, select the device which only has those features that the design requires.

• Device Selection Tool is helpful in selecting the appropriate chip which meets the design requirement.

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

“SELECTED” SHOWS THE CHIPS WHICH

FULFILL THE CRITERIA

“CRITERIA” CONSISTS OF THE MINIUM

FEATURES THE CHIP SHOULD HAVE

SPECIFY THE PIC FAMILY THE SELECTED CHIP SHOULD BELONG.

COLLEGE OF AERONAUTICAL ENGEENERING CAE

IF WE REQUIRE USB PORT SO, WE

CHANGE “Don’t Care” TO “Yes”

SELECTED DEVICES ALL HAVE USB PORT AND THEY BELONG

TO PIC 14-16 BIT FAMILYCOLLEGE OF AERONAUTICAL ENGEENERING CAE

Min. 256 Byte RAM AND 8 KB ROM (8192 Bytes) IS

REQUIRED

ANOTHER REQUIREMENT IS

OF 8-12 A/D CONVERTERS

ALL THESE CHIPS SHOWN FULFILL THE CRITERIA.

COLLEGE OF AERONAUTICAL ENGEENERING CAE

FEATURES OF DEVICES SHOWN IN “SELECTED” LIST ARE LIMITED. IF

WE WANT SEE ALL THE FEATURES OF A PARTICULAR CHIP e.g. 16F877

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

ALL FEATURES OF 16F877

COLLEGE OF AERONAUTICAL ENGEENERING CAE

16F877 HAVE TIMER 1 & 2 ONLY . ALL PIC CHIPS HAVE TIMER 0

(thus not shown )

COLLEGE OF AERONAUTICAL ENGEENERING CAE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

FUSES AND INTERRUPTS LIST

• This tool of the compiler can be used to see the fuses and interrupts that can be used for a specific device.

• Thus, it provides a quick glance, at the fuses and interrupts options available for a particular Pic device, instead of tedious search in the device data sheet

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SELECT DEVICE (e.g. 16F877)

ALL THESE FUSES CAN BE USED FOR SELECTED DEVICE

(16F877)

NOTE: FOR FUSES DETAIL REFER TO BOOK “PROGRAMMING 8 BIT PIC u-

CONTROLLER ” M. P Bates (PAGE 11)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SELECT DEVICE

ALL THE INTERRUPTS THAT CAN BE USED FOR SELECTED DEVICE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SERIL PORT MONITER

This tool works same as hyper terminal but in new windows (vista and later) there is no hyper terminal so this tool can be used to send/receive data to/from the computer serial port.

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SELECT COM PORT

BAUD RATE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

TYPE DATA TO SEND TO SERIAL PORT

RECEIVED DATA APPEAR HERE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

END

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Don't blame the unfavorable circumstances that stops you from doing what needs to be done as "the key lies in our decision not our condition"

(Everyday Greatness)

top related