18
Sistemas Basados en Microprocesadores Programación en C para PIC’s

P03.Programación en c para pics

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: P03.Programación en c para pics

Sistemas Basados en

Microprocesadores

Programación en C para PIC’s

Page 2: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Lenguaje de programación C

Es un lenguaje orientado a la implementación de

sistemas operativos.

Es muy apreciado por la eficiencia del código que

produce.

Es un lenguaje de medio nivel con muchas

características de bajo nivel.

Dispone de estructuras típicas de alto nivel,

pero a la vez permite un control del sistema a muy bajo

nivel.

Permite incluir código

ensamblador en código C

Page 3: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Los tipos de datos especifican los diferentes

tamaños de valores para..

Constantes: valor de cualquier tipo que nunca cambia.

Variables: una variables es una forma de referirnos a una

posición de memoria utilizada en un programa.

Puntero: tipo especial de variable en C que contiene la

dirección en memoria de otra variable.

Conceptos en C: tipos de datos

Page 4: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Tipo Tamaño Mínimo Máximo

char, signed char 8 bits -128 127

unsigned char 8 bits 0 255

int, short 16 bits -32768 32767

unsigned int, unsigned short 16 bits 0 65535

short long 24 bits -8388608 8388607

unsigned short long 24 bits 0 16777215

long 32 bits -2147483648 2147483647

unsigned long 32 bits 0 4294967295

Conceptos en C: tipos de datos (continuación...)

Page 5: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Las variables deben ser declaradas en las rutinas

antes de utilizarse.

Siempre al principio de la función.

La declaración debe especificar:

Tipo de la variable.

Denominación de la variable.

En el momento de su declaración, las variables

pueden ser inicializadas.

int a = 0

Conceptos en C: variables

Page 6: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Matrices de datos en ROM (arrays)const rom char *dataarray = “Press button to select...”

const rom char tunes[] = {“Press”,”button”,”to”}

Etiquetas en C parecidas a las constantes#define LightsON 0x01100110

#define LED PORTAbits.RA5

Conceptos en C: variables (continuación...)

Page 7: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Espacio de la variables:

Global: declaradas fuera de la función main.

Son accesibles desde cualquier punto del programa y su vida

útil es mientras que se ejecute el programa.

Local: declaradas dentro de una función.

Son accesibles sólo dentro de la función donde se declaran y

su vida útil es mientras que esa función se ejecuta.

Si al programador le interesa mantener el valor de

variable para llamadas posteriores de la función, debe ser

declarada como estática (static).

Conceptos en C: variables (continuación...)

Page 8: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Acceder a datos de memoria:

Por su nombre:

int a;

a = 17;

Por su dirección (a través de punteros):

int *bk, a;

bk = &a;

Conceptos en C: variables (continuación...)

Page 9: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Condicionales:if (expresión)

{

sentencias

}

else

{

sentencias

}

Conceptos en C: estructuras

Page 10: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Bucles:while (expresión)

{

sentencias

}

do

{

sentencias

}

while (expresión);

for (expr1;expr2;expr3)

{

sentencias

}

Conceptos en C: estructuras (continuación...)

Page 11: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Selección:switch (expresión)

{

case valor1:

sentencias

break;

case valor2:

sentencias

break;

...

default:

sentencias

break;

}

Conceptos en C: estructuras (continuación...)

Page 12: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Operadores aritméticos:

+ suma

- resta

* multiplicación

/ división

% resto

++ incremento

-- decremento

Conceptos en C: operadores

Page 13: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Operadores lógicos y de desplazamiento:

& and

| or

^ xor

~ not

>> desplazamiento a derecha

PORTA = PORTA >> 4

<< desplazamiento a izquierda

Conceptos en C: operadores (continuación...)

Page 14: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Operadores de comparación y lógicos:

== igual

!= no iguales

> mayor que

>= mayor o igual que

< menor que

<= menor o igual que

&& and

|| or

! not

Conceptos en C: operadores (continuación...)

No es lo mismo el

operador & que el &&.

¿Cuál es la diferencia?

Page 15: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

El lenguaje C está diseñado para el uso de funciones (conjunto de instrucciones que realizan una operación concreta), que se combinan para dar lugar a un programa. Programación estructurada.

Las variables se pasan de una función a otra en forma de parámetros.

Por defecto, el paso de parámetros es por valor.

La primera función que se ejecutará será la Main.

Es necesario definir una función antes de poder utilizarla. Funciones prototipo.

Conceptos en C: funciones

Page 16: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

Referencia a los registros del µcontrolador:

Los registros del microcontrolador son direccionables en

memoria como variables.

PORTA = LightsON;

Se puede hacer referencia a los bits individuales:

TRISBbits.TRISB3 = 0;

PORTBbits.RB4 = 1;

#pragma statements

Específican detalles del microcontrolador que utilizamos

(palabra de configuración).

#pragma config OSC=XT, WDT=OFF

C y los microcontroladores PIC

Incluyendo el archivo de

cabecera <p18fxxxx.h>

Page 17: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

C y los microcontroladores PIC (continuación…)

Se debe indicar cuales son las funciones de

interrupción por medio de la siguiente directiva:

Page 18: P03.Programación en c para pics

http://paginaspersonales.deusto.es/jonathan.garibay/

#include <p18F4520.h> /*Para las declaraciones de TRISB y PORTB*/

int counter; //variable global

void main(void)

{

counter=1;

TRISB=0; //configuración de PORTB

while (counter <=15)

{

PORTB = counter; //mostrar el valor de counter

counter++;

}

}

Ejemplo de programa en C