• No results found

C Language Quick Reference

N/A
N/A
Protected

Academic year: 2021

Share "C Language Quick Reference"

Copied!
39
0
0

Loading.... (view fulltext now)

Full text

(1)

C Programming Language

Quick Reference

V1.3

June 2009

Information contained in this publication regarding device applications and the like is intended through suggestion only and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. No representation or warranty is given and no liability is assumed by Cytron Technologies Incorporated with respect to the accuracy or use of such information or infringement of patents or other intellectual property rights arising from such use or otherwise. Use of Cytron Technologies’s products

(2)

Index

1. Introduction 1

2. Standard Method to Start 1

a. C Comments 1

b. Include Header File 2

c. Configuration Bits 2

d. Include Libraries, Functions declaration and Global variables 2 e. Function Name 2

f. Function Body 2

3. Radix Format 3

4. Identifiers, Variables and Keywords 3

a. Identifiers 3 b. Variable 4 c. Keywords 4 d. Data Type 5 e. Declaring Variable 6 f. Array 6 g. String 7 5. Operators 9 a. Arithmetic Operators 9 b. Assignment Operators 9 c. Relational Operators 10 d. Logical Operators 10 e. Bitwise Operators 10 f. Shift Operators 10

(3)

h. Other Operators 11 i. Operator Precedence 12 6. Statements 13 a. Expression Statements 13 b. Compound Statements 13 c. Control Statements 14 i. if Statement 15

ii. switch Statement 16

iii. for Statement 19

iv. while Statement 20

v. do-while Statement 21

vi. break Statement 22

vii. continue Statement 23

7. Function 24

8. Creating Project using MPLAB + HI-TECH C PRO Compiler 27

(4)

1. Introduction

This reference guide is intended to quickly introduce user to C language syntax with the aim to easily start programming microcontroller (PIC) during code development.

1st question, Why C language? Because C offers unmatched power and flexibility in programming microcontrollers.

2. Standard Method to Start

There is no 100% correct ways to write c program, anyway there are guide lines to follow. Let see what a C file contains.

a. C Comments

/* Put your comments here. This is actually the format of C comments. It may takes multiple lines, as long as it is end with */

OR

// Put your comments after “//”, this only allow one line.

// If you need multiple lines you will need “//” in front of each line. // This is C++ format of putting comments.

Prepared by

Cytron Technologies Sdn. Bhd. 19, Jalan Kebudayaan 1A,

Taman Universiti, 81300 Skudai, Johor, Malaysia. Tel: +607-521 3178 Fax: +607-521 1861 URL: www.cytron.com.my Email: [email protected] [email protected] a. Comments b. Include header file c. Configuration bits d. Include libraries, function declaration, global variable e. Function name f. Function body End of block Begin of Block

(5)

b. Include Header File

#include<htc.h> is to called the proper header file. It enables the compiler to include file which define standard keyword for PIC based on model. It also includes certain functions contained in the external file htc.h.

As the file placed before the program proper, it is called a header file (with the file extension .h).

c. Configuration Bits

A macro that writes a value into the special register that controls the core executing operations of the microcontroller. It start with two “_” and followed with CONFIG(configuration bits);

If the configuration bits are not specified correctly, the PIC MCUs might not run the application code properly

d. Include Libraries, Functions declaration and Global variables

This section can be leaved blank depend on program writer. However, if there is necessary to include other header file, libraries, to declare functions prototype and global variables, it should be placed here.

e. Function Name

All C programs are written in terms of functions. It is the basic building block in C programming. C program must have at least the function main( ). The void means the main( ) function doesn't return any value when it exit (finish running)..

f. Function Body

Every function, including main( ), must have a body enclosed in braces { }.The function body (also called block) can be of any size. The curly braces are to signify the block of codes belonging to main( ). Do take note that there MUST NOT be a semicolon after the closing brace.

(6)

3. Radix Format

Radix format is the way a value is being presented in C language There are four methods to present value:

Radix Format Comments

Binary 0bnumber or 0Bnumber MPASM binary is in format B’number’.

Octal 0number or \number Inadvertently putting a 0 in front of a decimal number will convert it to octal for the compiler, potentially resulting in errors that are very hard to find.

Decimal number MPASM default is hexadecimal

Hexadecimal 0xnumber or 0Xnumber MPASM also enables X’number’.

4. Identifiers, Variables and Keywords a. Identifiers

Identifiers are simply names or labels given to program elements such as variables, functions, arrays.

A valid identifier has the rules of:

Remember! Is case sensitive, Temp not the same as temp.

I d e n t i f i e r

First Character

_

’ (underscore)

A

’ to ‘

Z

a

’ to ‘

z

Remaining Characters

_

’ (underscore)

A

’ to ‘

Z

a

’ to ‘

z

0

’ to ‘

9

(7)

b. Variable

A variable is a valid identifier that represents one or more memory locations used to hold

program data. It must be declared before uses. Data type must be assigned to a variable.

c. Keywords

Keywords also called reserved words, have standard, predefined meanings and must be used only for their intended purpose.

asm class do far huge long protected sizeof typedef volatile auto const double float if near public static union while break continue else for inline new register struct unsigned case default enum friend int operator return switch virtual char delete extern goto interrupt private short this void

(8)

d. Data Type

Data Type is type assigned to variable to determine the size and how the variable being interpreted.

Fundamental Type

Type Description Bits

char single character 8

int integer 16

float single precision floating point number 32 double double precision floating point number 64

Modified Integer Types

Qualifiers: unsigned, signed, short and long

Qualified Type Min Max Bits

unsigned char 0 255 8

char, signed char -128 127 8

unsigned short int 0 65535 16

short int, signed short int -32768 32767 16

unsigned int 0 65535 16

int, signed int -32768 32767 16

unsigned long int 0 232-1 32

long int, signed long int -231 231-1 32

unsigned long long int 0 264-1 64

long long int, signed long long int -263 263-1 64

Modified Floating Point Types

Qualified Type Absolute Min Absolute Max Bits

float ±~10-44.85 ±~1038.53 32

double1 ±~10-44.85 ±~1038.53 32

long double ±~10-323.3 ±~10308.3 64

(9)

e. Declaring Variable Standard Syntax

type identifier1, identifier2,….., identifiern; Other method

One declaration on a line type identifier;

One declaration on a line with an initial value type identifier InitialValue;

Multiple declarations of same type of a line type identifier1, identifier2, identifier3;

Multiple declarations of same type of a line with initial values type identifier1= Value1, identifier2 = Value2;

Example:

unsigned int x; unsigned y = 12; int a, b, c;

long int myVar = 0x12345678; long z;

char first = 'a', second, third = 'c'; float big_number = 6.02e+23;

f. Array

Arrays are variables that can store many items of the same data type. The individual items known as elements, are stored sequentially and are uniquely identified by the array index (sometimes called a subscript). The index is zero based.

Standard Syntax type arrayName[size];

size refer to the number of elements and it must be a constant integer.

Declaration with initialization

type arrayName[size] = {item1, …. , itemn}; The items must all match the type of the array. Example:

(10)

Using Array:

Standard Syntax arrayName[index]

index may be a variable or a constant

The first element in the array has an index of 0

Example1:

int i, a[10]; //An array that can hold 10 integers for(i = 0; i < 10; i++)

{

a[i] = 0; //Initialize all array elements to 0 }

a[4] = 42; //Set fifth element to 42 Example2:

unsigned char count[5] = {1,2,3,4,5}; element Value count[0] 1 count[1] 2 count[2] 3 count[3] 4 count[4] 5 g. String

Strings are arrays of char whose last element is a null character ‘\0’ with an ASCII of 0. C has no native string data type, so strings must always be treated as character arrays.

Strings:

- Are enclosed in double quotes “string”. - Are terminated by a null character ‘\0’.

- Must be manipulated as arrays of characters (treated element by element). - May be initialized with a string literal.

Declaration with initialization

char arrayName[] = “Cytron Technologies”; Element size is not required.

Size automatically determined by length of string. NULL character ‘\0’ is automatically appended.

Example:

char str1[] = “Cytron"; // 7 chars “Cytron\0" //Alternative string declaration – size required char str3[4] = {'P', 'I', 'C', '\0'};

(11)
(12)

5. Operators

Most C Compiler recognizes following operators: - Arithmetic Operators - Assignment Operators - Relational Operators - Logical Operators - Bitwise Operators - Shift Operators

- Memory Addressing Operators - Other Operators

a. Arithmetic Operators

Operator Operation Example Product Remarks

* Multiplication x * y Product of x and y Binary / division x / y Quotient of x and y Binary

% Modulo x % y

Remainder of x divided by

y Binary

+ Addition x + y Sum of x and y Binary

- Subtraction x - y Difference of x and y Binary

+ Positive + x Value of x Unary

- Negative - y Negative value of y Unary

++ Increment ++ x increase x by 1 Unary

-- Decrement -- x decrease x by 1 Unary

b. Assignment Operators

Operator Operation Example Result

= Assignment x = y Assign x the value of y += Compound Assignment x += y x = x + y

-= Compound Assignment x -= y x = x - y *= Compound Assignment x *= y x = x * y /= Compound Assignment x /= y x = x / y %= Compound Assignment x %= y x = x % y &= Compound Assignment x &= y x = x & y ^= Compound Assignment x ^= y x = x ^ y |= Compound Assignment x |= y x = x | y <<= Compound Assignment x <<= y x = x << y >>= Compound Assignment x >>= y x = x >> y

(13)

c. Relational Operators

Operator Operation Example Result (FASLE = 0, TRUE≠0) < Less than x < y 1 if x less than y, else 0

<= Less than or equal to x <= y 1 if x less than or equal to y, else 0 > Greater than x > y 1 if x greater than y, else 0

>= Greater than or equal

to x >= y 1 is x greater than or equal to y, else 0 == Equal to x == y 1 is x equal to y, else 0

!= Not equal to x != y 1 is x not equal to y, else 0

d. Logical Operators

Operator Operation Example Result (FASLE = 0, TRUE≠0) && Logical AND x && y 1 if both x ≠ 0 and y ≠ 0, else 0 || Logical OR x || y 1 if both x = 0 and y = 0, else 1

! Logical NOT !x 1 if x = 0, else 0

e. Bitwise Operators

The operation is carried out on each bit of the first operand with each corresponding bit of the second operand.

Operator Operation Example Result (for each bit position) & Bitwise AND x & y 1 if 1 in both x and y

0, if 0 is x or y or both | Bitwise OR x | y 1, if 1 in x or y or both 0, if 0 in both x and y ^ Bitwise XOR x ^ y 1, is 1 in x or y but not both

0, if 0 or 1 in both x and y ~ Bitwise NOT ~x 1, if 0 in x

0, if 1 in x

f. Shift Operators

Operator Operation Example Result

<< Shift Left x << y Shift x by y bits to the left >> Shift Right x >> y Shift x by y bits to the right

(14)

g. Memory Addressing Operators

Operator Operation Example Result

& Address of &x Pointer to x

* Indirection *p The object of function that p points to [ ] Subscripting x[y] The yth element of array x

. Struct/Union Member x.y The member named y in the structure or union x

-> Struct/Union Member

by Reference p->y The member named y in the structure or union that p points to

h. Other Operators

Operator Operation Example Result

( ) Function call foo(x) Passes control to the function with the specified arguments

sizeof Size of an object or

type in bytes sizeof x

the number of bytes x occupies in memory

(type) Explicit type cast (short) x Converts the value of c to the specified type

?: Conditional

expression x ? y : z

The value of y if x is true, else value of z

, Sequential

evaluation x, y

Evaluates x then y, else result is value of y

(15)

i. Operator Precedence

Which operator will be evaluated first?

Operator Description Associativity

( ) Parenthesized Expression

Left-to-Right [ ] Array Subscript

. Structure Member -> Structure Pointer

+ - Unary + and - (Positive and Negative Signs)

Right-to-Left ++ -- Increment and Decrement

! ~ Logical NOT and Bitwise Complement * Deference (Pointer)

& Address of

sizeof Size of Expression or Type (type) Explicit Typecast

* / % Multiply, Divide, and Modulus

Left-to-Right + - Add and Subtract

<< >> Shift Left and Shift Right

< <= Less Than and Less Than or Equal To > >= Greater Than and Greater Than or Equal To == != Equal To and Not Equal to

& Bitwise AND ^ Bitwise XOR | Bitwise OR && Logical AND || Logical OR

? : Conditional Operator

Right-to-Left = Assignment

+= -= Addition and Subtraction Assignments /= *= Division and Multiplication Assignments

%= Modules Assignment

<<= >>= Shift Left and Shift Right Assignments &= |= Bitwise AND and OR Assignments

^= Bitwise XOR Assignments

(16)

6. Statements

Statements can be roughly divided into: - Expression Statements

- Compound Statements - Control Statements

a. Expression Statements

An expression followed by a semi-colon. It caused the expression to be evaluated.

Example: i = 0; i++; a = 5 + i; y = (m * x) + b; printf("Slope = %f", m); ; b. Compound Statements

A group of individual statements enclosed within a pair of curly braces { and }. It does not end with a semicolon after }. It is also called Block Statements.

Example: {

float start, finish;

start = 0.0; finish = 400.0;

distance = finish – start; time = 55.2;

speed = distance / time;

printf("Speed = %f m/s", speed); }

(17)

c. Control Statements

Used for loops, branches and logical tests. Often require other statements embedded within them.

Before exploring more in to Control Statements, we must understand Boolean expressions. Boolean expressions return integers:

- 0 if expression evaluates as FALSE

- Non-zero if expression evaluates as TRUE (usually returns 1, but this is not guaranteed) Example: int main(void) { int x = 5, y, z; y = (x > 4); z = (x > 6); while (1); } y = 1 (TRUE) z = 0 (FALSE)

(18)

i. if Statement Standard Syntax

if (expression) statement

expression is evaluated for Boolean TRUE (≠0) or FALSE (=0), if TRUE, then statement is executed.

Flow diagram of if statement

Example: { int x = 5; if (x) { printf("x = %d\n", x); } while (1); }

if statement may has several combination of:

a. Nested if statement b. if-else statement c. if-else if statement expression statement START END expression statement START END TRUE FALSE expression = 0 expression ≠ 0

(19)

ii. switch Statement Standard Syntax

switch (expression) {

case const-expr1: statements1 .

. .

case const-exprn: statementsn

default: statementsn+1 }

expression is evaluated and tested for a match with the const-expr in each case clause. The statements in the matching case are executed.

(20)

Flow diagram of default switch statement

Flow diagram of modified switch Statement

Const-expr1= expression? START END statement2 statement1 Const-expr2= expression? statementn+1 Const-exprn= expression? statementn Const-expr1= expression? START END statement2 statement1 Const-expr2= expression? statementn+1 Const-exprn= expression? statementn

Notice that each statement

falls through to the next

This is the default behavior

of the

switch

statement

Const-expr1= expression? START END Const-expr2= expression? statementn+1 Const-exprn= expression? statement1 break; statement2 break; statementn break; Const-expr1= expression? START END Const-expr2= expression? statementn+1 Const-exprn= expression? statement1 break; statement2 break; statementn break;

Adding a

break

statement to each

statement block will

eliminate fall

through, allowing

only one case

clause's statement

block to be executed

(21)

Example:

switch(channel) {

case 2: printf("WBBM Chicago\n"); break; case 3: printf("DVD Player\n"); break; case 4: printf("WTMJ Milwaukee\n"); break; case 5: printf("WMAQ Chicago\n"); break; case 6: printf("WITI Milwaukee\n"); break; case 7: printf("WLS Chicago\n"); break; case 9: printf("WGN Chicago\n"); break; case 10: printf("WMVS Milwaukee\n"); break; case 11: printf("WTTW Chicago\n"); break; case 12: printf("WISN Milwaukee\n"); break; default: printf("No Signal Available\n"); }

(22)

iii. for Statement

Also being called as for loop. Standard Syntax

for (expression1; expression2; expression3) statement

- expression1 initializes a loop count variable once at start of loop (e.g. I = 0). - expression2 is the test condition: the loop will continue while this is true (e.g. I <=

10).

- expression3 is executed at the end of each iteration (loop): usually to modify the loop count variable (e.g. i++).

Flow diagram of for Statement

Example: i inntt ii;; f foorr ((ii == 00;; ii << 55;; ii++++)) { { p prriinnttff((""LLoooopp iitteerraattiioonn ##%%dd\\nn"",, ii));; } } Expected result: Loop iteration 0 Loop iteration 1 Loop iteration 2 Loop iteration 3 Loop iteration 4 expression 2? START END expression 1 statement expression 3 expression 2? START END expression1 statement expression 3 TRUE FALSE

i

=

0

i

<

n

i

++

Initialize loop variable

Test loop variable for exit condition

Modify loop variable

(23)

iv. while Statement Often called while loop. Standard Syntax

while (expression) statement

- If expression is TRUE, statement will be executed and then expression will be re-evaluated to determine whether or not to execute statement again. - It is possible that statement will never be executed if expression is FALSE

when it is first evaluated.

Flow diagram of while Statement

Example: Expected result: Loop iteration 0 Loop iteration 1 Loop iteration 2 Loop iteration 3 Loop iteration 4 expression? START END statement expression? START END statement i inntt ii = = 00; ; w whhiillee (i(i < < 55)) { { p prriinnttff("("LLoooopp iitteerraattiioonn ##%%dd\\nn"", , ii++++));; } }

Loop counter initialized outside of the loop

Loop counter incremented manually inside loop Condition checked at start of loop iterations

(24)

v. do-while Statement Always called do-while loop Standard Syntax

do statement while (expression);

- statement is executed and then expression is evaluated to determine whether or not to execute statement again.

- statement will always execute at least once, even if the expression is FALSE when the loop starts.

Flow diagram of do-while Statement

Example: Expected result: Loop iteration 0 Loop iteration 1 Loop iteration 2 Loop iteration 3 Loop iteration 4 Loop iteration 5 expression? START END statement expression? START END statement

Loop counter incremented manually inside loop Loop counter initialized outside

of loop

Condition checked at end of loop iterations i inntt ii = = 00;; d doo { { p prriinnttff("("LLoooopp iitteerraattiioonn ##%%dd\\nn"",, ii++++));; } } wwhhiillee ((ii < < 55));;

(25)

vi. break Statement Standard Syntax break;

- Causes immediate termination of a loop even if the exit condition hasn’t been met. - Exits from a switch statement so that execution doesn’t fall through the next case

clause.

Flow diagram of break Statement

Example: Expected result: Loop iteration 1 Loop iteration 2 Loop iteration 3 Loop iteration 4 expression? START END break statement statement expression? START END break statement statement TRUE FALSE i inntt ii = = 00;; w whhiillee (i(i << 1100) ) { { i i++++;; i iff (i(i ==== 55) ) bbrreeaakk;; p prriinnttff("("LLoooopp iitteerraattiioonn ##%%dd\\nn"",, ii);); } }

Exit from the loop when I = 5. Iteration 6-9 will not be executed.

(26)

vii. continue Statement Standard Syntax

continue;

- Causes program to jump back to the beginning of a loop without completing the current iteration.

Flow diagram of break Statement

Example: Expected result: Loop iteration 1 Loop iteration 3 Loop iteration 4 Loop iteration 5 expression? START END continue statement statement expression? START END continue statement statement TRUE FALSE i inntt ii = = 00; ; w whhiillee (i(i < < 66)) { { i i++++;; i iff ((ii ==== 22)) ccoonnttiinnuuee; ; p prriinnttff("("LLoooopp iitteerraattiioonn ##%%dd\\nn"", , ii);); } }

Skip remaining iteration when i=2. Iteration 2 will not be completed.

(27)

7. Functions

Functions are self contained program segments designed to perform a specific, well defined task.

- All C programs have one or more functions.

- The main( ) function is the minimum function needed. - Functions can accept parameters from the code that calls them. - Functions usually return a single value.

- Functions help to organize a program into logical, manageable segments.

Program Structure in C programming

drink

()

{

...

be_merry

();

return

;

}

be_merry

()

{

...

return

;

}

eat

()

{

...

return

;

}

main

()

{

...

eat

();

...

drink

();

...

}

(28)

Standard Syntax of function definition

Example:

int maximum(int x, int y) { int z; z = (x >= y) ? x : y; return z; }

Standard Syntax of function calling a. No parameters and no return value:

foo( );

b. No parameters, but with a return value: x = foo ( );

c. With parameters, but no return value: foo(a, b);

d. With parameters and a return value: x = foo(a, b); Syntax

t

t

y

y

p

p

e

e

i

i

d

d

e

e

n

n

t

t

i

i

f

f

i

i

e

e

r

r

(

(

t

t

y

y

p

p

e

e

11

a

a

r

r

g

g

11

,

,

,

,

t

t

y

y

p

p

e

e

nn

a

a

r

r

g

g

nn

)

)

{

{

d

d

e

e

c

c

l

l

a

a

r

r

a

a

t

t

i

i

o

o

n

n

s

s

s

s

t

t

a

a

t

t

e

e

m

m

e

e

n

n

t

t

s

s

r

r

e

e

t

t

u

u

r

r

n

n

e

e

x

x

p

p

r

r

e

e

s

s

s

s

i

i

o

o

n;

n

;

}

}

D

D

a

a

t

t

a

a

t

t

y

y

p

p

e

e

o

o

f

f

r

r

e

e

t

t

u

u

r

r

n

n

e

e

x

x

p

p

r

r

e

e

s

s

s

s

i

i

o

o

n

n

N

N

a

a

m

m

e

e

P

P

a

a

r

r

a

a

m

m

e

e

t

t

e

e

r

r

L

L

i

i

s

s

t

t

(

(

o

o

p

p

t

t

i

i

o

o

n

n

a

a

l

l

)

)

R

R

e

e

t

t

u

u

r

r

n

n

V

V

a

a

l

l

u

u

e

e

(

(

o

o

p

p

t

t

i

i

o

o

n

n

a

a

l

l

)

)

H

H

e

e

a

a

d

d

e

e

r

r

B

B

o

o

d

d

y

y

(29)

Function Prototypes

- Like variables, a function must be declared before it may be used. - Declaration must occur before main( ) or other functions that use it. - Declaration may take two forms:

o The entire function definition

o Just a function prototype – the function definition itself may then be placed anywhere in the program

Example: i inntt aa = = 55,, bb = = 1100, , cc; ; i inntt mmaaxxiimmuumm(i(inntt xx, , iinntt yy);); i inntt mmaaiinn((vvooiidd) ) { { c c = = mmaaxxiimmuumm(a(a,, bb);); p prriinnttff((""TThhee mmaaxx iiss %%dd\\nn"", , cc) ) } } i inntt mmaaxxiimmuumm(i(inntt xx, , iinntt yy) ) { { r reettuurrnn ((((xx >=>= yy) ) ?? xx : : yy);); } }

Function is declared with prototype before use in main ( )

Function is defined after it is used in main ( )

(30)

8. Creating Project using MPLAB + HI-TECH C PRO Compiler

To start MPLAB IDE and open project for PIC16F series, please follow the step below:

1. Double click on the icon installed on the desktop after installation or select Start>Programs>Microchip> MPLAB IDE v8.20a>MPLAB IDE. A screen will display the MPLAB IDE logo followed by the MPLAB IDE desktop as in diagram below.

2. The next step is to create a project using the Project Wizard. A project is the way the files are organized to be compiled and assembled. We Choose Project>Project Wizard.

(31)

3. From the Welcome dialog, click on Next to proceed.

4. The next dialog (Step One) allows you to select the device. In this example, PIC16F877A was selected from the drop down menu. Click Next>.

(32)

5. The next step of the Project Wizard is sets up the language tools that are used with this project. Select “HI-TECH Universal Toolsuite” in the Active Toolsuite list box. Then select “HI-TECH ANSI C Compiler” in the Toolsuite Contents box. When you are finished, click Next.

(33)

7. For an example, a folder named Project was first created at Desktop.

8. Then open the folder, project. Project named “project” can be created by typing the project name in the column for “File name”, and click Save.

(34)

9. Diagram below shown the Project “project” had been created and the directory. Click Next>.

10. Step four of the project wizard allow user to add existing file to the project, however, for this example, no files will be added. Please click Next> to proceed.

(35)

11. A summary will be shown at the end of project wizard, all the project parameters are shown. Please click Finish to exit from project wizard.

12. After pressing the Finish button, review the Project Window on the MPLAB IDE desktop. It should look like the diagram below. If the Project Window is not open, please select View>Project.

(36)

13. In this example, sample source code for Cytron DIY project, PR23 will be added to this project. The sample source code can be downloaded at

http://www.cytron.com.my/PR23.asp . Diagram below show the sample source code, PR23.c being copied and pasted in the folder, project.

14. To add file in Source Files, right click on the Source Files, then click on Add Files…, diagram below shown the example for add file to Source Files

(37)

15. After clicking on Add Files…, a window pop out, do make sure the Files of type is All Source Files(*.asm;*.c), then browse to the folder Project to add in “PR23.c”. User can select the file, “PR23.c”, and click open to add the file.

(38)

17. After added the source file, user can open PR23.c file in this workspace and try to compile it. Diagram below shown opened PR23.c file. To compile, user can go Project>Build or the build icon (in red circle) on menu bar as shown in diagram below.

18. After build success, a message Build successful! will appear in output window like shown in diagram below.

(39)

9. Starting a PIC Program

There are basic steps to start a program for PIC microcontroller a. Create a project.

b. Create a C file.

c. Place some comments on top of C file. d. Include necessary header file.

e. Write configuration bit.

f. Function prototype declaration, global variables. g. Start main function, void main ().

h. 1st thing after PIC reset, it will come to main function and look at first program line. Thus program write must initialize the PIC Input, Output, Analog input, UART, and also other peripherals which going to be used in later program.

i. Also please ensure the initial stage of output is not activated after reset.

Prepared by

Cytron Technologies Sdn. Bhd. 19, Jalan Kebudayaan 1A,

Taman Universiti, 81300 Skudai, Johor, Malaysia.

Tel: +607-521 3178 Fax: +607-521 1861

References

Related documents

BEFORE TAXIING ON OR OFF THE RUNWAY FOR DEPARTURE 10 MILES OUT� ENTERING: DOWNWIND BASE FINAL LEAVING THE RUNWAY FSS CLOSED (NO TOWER) NO TOWER, FSS OR UNICOM TOWER OR

In addition, if I marked &#34;Yes&#34; to any of the above questions, I hereby authorize release of information from my Department of Transportation regulated drug and alcohol

Choose a project file from the local files, or a published project name, to load and click Open.. The project file will now load in Microsoft Project

„Project -&gt; Import Existing CCE/CCS Project‟ and selecting the copied folder – Works well for simple projects that only reference files inside the

The results reveal most people buying lifestyle properties at South Kaipara Head do not intend to be reliant on local employment, as only a small proportion

It has been proposed that problems with MFR may be targeted by interventions spanning several areas, including, understanding and managing reactions to antenatal screening

The results of our investigation showed that in patients with acute coronary syndrome before and on the 3rd day after PCI, the elevation of all purine