You are on page 1of 33

PROGRAMACIN CON CCS

Programacin en C para electrnica

Estructura de un programa C
2

Programacin con CCS-Programacin en C para electrnica

Tipos de datos CCS


3

Programacin con CCS-Programacin en C para electrnica

Constantes
4

123 0123 0x123 0b010101011 'A' '\010' '\xA5' Cadena \n,\r,\b,\t

Decimal Octal Hexadecimal Binario Carcter Carcter Octal Carcter Hex. Cadena de caracteres Caracteres especiales

Programacin con CCS-Programacin en C para electrnica

Variables:
5

En CCS las variables se utilizan para nombrar posiciones de memoria RAM. Declaracin: tipo_variable identificador [=valor_inicial];

tipo_variable = Tipo de dato de la variable. Identificador = Nombre asignado a la variable. valor_inicial = Valor inicial almacenado en la memoria asignada.
Programacin con CCS-Programacin en C para electrnica

Variables:
6

Las variables deben ser declaradas antes de ser utilizadas. Pueden ser declaradas como locales o globales. Pueden ser definidas como:

AUTO: La variable existe mientras la funcin est activa. STATIC: Una variable local se activa como global. EXTERN: Permite el uso de variables en programas de mltiples archivos.

Programacin con CCS-Programacin en C para electrnica

Operadores de asignacin:
7

= += -= *= /= %= <<= >>= &= |= ^=

Asignacin (x=y: x toma el valor de y) Asignacin de suma (x+=y igual a x=x+y) Asignacin de resta (x-=y igual a x=x-y) Asignacin de producto (x*=y igual a x=x*y) Asignacin de cociente (x/=y igual a x=x/y) Asignacin de resto (x%=y igual a x=x%y) Asignacin de desplazamiento (x<<=y igual a x=x<<y) Asignacin de desplazamiento (x>>=y igual a x=x>>y) Asignacin de AND de bits (x&=y igual a x=x&y) Asignacin de OR de bits (x|=y igual a x=x|y) Asignacin de OR-EX de bits (x^=y igual a x=x^y)

Programacin con CCS-Programacin en C para electrnica

Operadores aritmticos:
8

+ * / % -++ sizeof

Suma Resta Producto Divisin Resto Decremento Incremento Tamao en bytes de un operando

Programacin con CCS-Programacin en C para electrnica

Operadores relacionales:
9

< > <= >= == != ?:

Menor que Mayor que Menor o igual Mayor o igual Igual Distinto Expresin condicional

Programacin con CCS-Programacin en C para electrnica

Operadores lgicos y de bits:


10

NOT

&& AND
|| OR

~ & ^ | >> <<

Complemento a uno AND OR-EXCLUSIVA OR Desplazamiento a Derechas. Desplazamiento a Izquierdas

Programacin con CCS-Programacin en C para electrnica

Precedencia de operadores:
11

Programacin con CCS-Programacin en C para electrnica

Funciones:
12

Conjunto de sentencias repetitivo agrupadas bajo un nombre. Pueden ser llamadas desde cualquier parte del programa tantas veces como sea necesaria su ejecucin. Pueden devolver valores y recibir parmetros o argumentos. Deben ser declaradas antes de llamarlas. Pueden agruparse en ficheros de librerias.
Programacin con CCS-Programacin en C para electrnica

Declaracin de funciones:
13

[tipo_dato] identificador ([tip_par1 ,tipo_par2,]) { //sentencias [return();] }


tipo_dato = tipo de dato devuelto por la funcin. Identificador = nombre de la funcin. tip_parX = nombre y tipo de los argumentos.
Programacin con CCS-Programacin en C para electrnica

Control del flujo de ejecucin:


14

If-Else While Do-while For. Switch-case Return Break, Continue y goto.

Programacin con CCS-Programacin en C para electrnica

If - else
15

if (a==0) { b=10; } else c=5;

a=0?
No

Si

b=10

c=5

Programacin con CCS-Programacin en C para electrnica

If - else
16

if (a==0) b=10; else if (a>0) b=5; else b=0;

a=0?
No

Si

b=10

No

a>0?

Si

b=0

b=5

Programacin con CCS-Programacin en C para electrnica

switch-case
17

switch (A) { case 0: B=10; break; case 1: B=20; break; case 2: B=30; break; default:break; }

A=0?
No

Si

B=10

A=1?
No

Si

B=20

A=2?
No

Si

B=30

Programacin con CCS-Programacin en C para electrnica

Bucle for
18

n=1

for (n=1;n<=10;n++) { contador=n; }

n<=10?
Si

No

contador=n

n=n+1

Programacin con CCS-Programacin en C para electrnica

Bucle while
19

while(a<100) { a++; } //puede que no se //ejecute ninguna //vez

a<100?
Si

No

a=a+1

Programacin con CCS-Programacin en C para electrnica

Bucle do-while
20

do
{ a++; } while(a<100) //el bucle se //ejecuta al menos //una vez

a=a+1

a<100?
Si

No

Programacin con CCS-Programacin en C para electrnica

Directivas del preprocesador


21

Programacin con CCS-Programacin en C para electrnica

Directivas C estandar
22

#define ID valor:

Utilizadas para definir valores constantes y asignarles un nombre fcil de identificar. La compilacin sustituye el identificador por su valor. Ejemplo: #define PI 3,1416
Utilizadas para incluir en la compilacin archivos de cabecera.

#include <archivo.h>

Programacin con CCS-Programacin en C para electrnica

Directivas del preprocesador


23

Programacin con CCS-Programacin en C para electrnica

Fuses:
24

La directiva #fuses se utiliza para programar la palabra de configuracin que definir el funcionamiento del PIC.

Con esta directiva se indica al programador que bits de la palabra de configuracin queremos activar.
Configurar incorrectamente la palabra de control puede producir funcionamientos anmalos En nuestro caso:

#fuses HS,LVP,NOWDT

Programacin con CCS-Programacin en C para electrnica

Fuses vlidos:
25

Programacin con CCS-Programacin en C para electrnica

Retardos software
26

La directiva #use delay (clock=frec) indica al compilador la frecuencia de reloj de funcionamiento del PIC. frec es la frecuencia en hercios. Se utiliza para generar retardos software con las funciones: delay_us(microseg) delay_ms(miliseg) En nuestro caso: #use delay (clock=8000000)
Programacin con CCS-Programacin en C para electrnica

Directivas del preprocesador


27

Programacin con CCS-Programacin en C para electrnica

Gestin de la memoria:
28

CCS incluye directivas para la gestion de la memorias RAM y sus registros. Esto nos permite trabajar de forma sencilla con las posiciones de memoria RAM y asignar identificadores a posiciones concretas. Estas directivas permiten acceder a los registros del banco de memoria como variables de tipo bit o byte.

Programacin con CCS-Programacin en C para electrnica

Gestin de la memoria:
29

CCS incluye directivas para la gestion de la memorias RAM y sus registros. Esto nos permite trabajar de forma sencilla con las posiciones de memoria RAM y asignar identificadores a posiciones concretas. Estas directivas permiten acceder a los registros del banco de memoria como variables de tipo bit o byte.

Programacin con CCS-Programacin en C para electrnica

#byte
30

La directiva #byte pone un nombre a una posicin de memoria RAM absoluta. Sintaxis:

//Acceso a los puertos #byte portA=0x05 #byte TRISA=0x85 #byte portB=0x06 #byte TRISB=0x86 #byte portC=0x07 #byte TRISC=0x87

#byte ID=PosMem

Programacin con CCS-Programacin en C para electrnica

#bit
31

La directiva #bit pone un nombre a un bit de una posicin de memoria RAM o un identificador. Sintaxis:

//Acceso a los bits //Motores #bit servoI=portC.2 #bit servoD=portC.1

#bit ID=ID.bit #bit ID=PosMem.bit

//finales de carrera #bit FCI=0x07.0 #bit FCD=0x07.3

Programacin con CCS-Programacin en C para electrnica

Ejemplos de uso
32

#byte TRISC = 0x87 #byte TRISB = 0x86 #byte PORTC = 0x07 #byte PORTB = 0x06 #bit RB0=PORTB.0 #bit RC7=PORTC.7 ....

void main (void) { TRISC=0xFF; TRISB=0x00; PORTB=PORTC; RB0=RC7; }

Programacin con CCS-Programacin en C para electrnica

Ensamblador
33

Las directivas #ASM y #ENDASM permiten incrustar cdigo ensamblador en un programa C de CCS. El cdigo escrito entre ambas directivas ser tratado por el compilador como cdigo ensamblador.

Programacin con CCS-Programacin en C para electrnica

You might also like