You are on page 1of 31

Compilador CCS C

Qu es un compilador?
Un compilador convierte el lenguaje de alto nivel a instrucciones en cdigo maquina; un cross-compiler es un compilador que funciona en un procesador(normalmente una PC) diferente al procesador objeto. El compilador CCS C es un cross-compiler.

Estructura de un programa
Para escribir un programa en C con CCS C se debe tener en cuenta una serie de elementos bsicos de su estructura DIRECTIVAS DE PREPROCESADO: Controlan la conversin del programa a cdigo maquina por parte del compilador. PROGRAMAS o FUNCIONES: Conjunto de instrucciones. Pueden haber uno o varios, el cualquier caso siempre debe haber uno definido como principal mediante la inclusin llamada main(). INSTRUCCIONES: Indican como debe comportarse el PIC en todo momento. COMENTARIOS: Permiten describir lo que significa cada lnea del programa.

Directivas

Funcin

Funcin Principal

Instrucciones

Comentarios

Tipos de Datos
Tipo Int1 Short Int Int8 Int16 Long Tamao 1 bit 8 bits 16 bits Rango 0a1 0 a 255 0 a 65 535 Descripcin Entero de 1 bit Entero Entero de 16 bits

Int32 Float
Char Void Signed Int8 Signed Int16 Signed Int32

32 bit 32 bit
8 bit -8 bit 16 bit 32 bit

0 a 4 294 967 295

Entero de 32 bits Coma flotante


Carcter Sin valor Entero con signo Entero largo con signo Entero 32 bit con signo

1 175x10^(-38 ) a
3 402x10^(+38) 0 a 255 --128 a +127 -32768 a +32767 -2^31 a +(2^31 1 )

Las Constantes
123 0123
0x123 0b010010 x \010 \xA5

Decimal Octal (0)


Hexadecimal (0x) Binario (0b) Carcter Carcter octal Carcter hexadecimal

Definicin de constantes con un sufijo Int8 Long Float Char 127U 80UL 3.14F Con comillas simples C

Signed INT16 80L

Definicin de caracteres especiales \n \r \t \b Cambio de lnea Retorno de carro Tabulacin Backspace

Las Variables
Se utilizan para nombrar posiciones de memoria RAM; se deben declarar obligatoriamente antes de utilizarlas, para ello se debe indicar el nombre y el tipo de dato que se manejara.

TIPO NOMBRE_VARIABLE [=VALOR INICIAL]


float int char temp_limit = 500.0 ; valor1 = 100 ; Espacio= \x20 ;

Las Variables
Las variables definidas en un programa pueden ser de tipo LOCAL o GLOBAL. Las variables locales solo se utilizan en la funcin donde se encuentran declaradas. Las variables globales se pueden utilizar en todas las funciones del programa. #include <16f877a.h> #use DELAY (clock=20000000) int16 counter; // Variable global Void FUNCION(void){ char K, kant=0 ; } void main( ){ int8 temp ; }

// Variable local

// Variable local

Las Variables
Las variables pueden ser definidas con: AUTO: (Usada por defecto, no hace falta indicar) donde la variable existe mientras la funcin esta activa. Estas variables no se inicializan a cero. Su valor se pierde cuando se sale de la funcin. STATIC: Una variable local se activa como global, se inicializa en cero y mantiene su valor al entrar y salir de la funcin. EXTERN: Permite el uso de variables en compilaciones mltiples.

Los Operadores
+= -= Asignacin de suma (x+=y es lo mismo que x=x+y) Asignacin de resta (x-=y es lo mismo que x=x-y)

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

Asignacin de multiplicacin (x*=y es lo mismo que x=x*y) Asignacin de divisin (x/=y es lo mismo que x=x/y)
Asignacin de resto de divisin (x%=y es lo mismo que x=x%y) Asignacin de desplazamiento a la izquierda (x<<=y es lo mismo que x=x<<y) Asignacin de desplazamiento a la derecha (x>>=y es lo mismo que x=x>>y) Asignacin AND de bits (x&=y es lo mismo que x=x&) Asignacin OR de bits (x|=y es lo mismo que x=x|y) Asignacin OR EXCLUSIVA de bits (x^=y es lo mismo que x=x^y)

Los Operadores
+ * / % -++ sizeof Suma Resta Multiplicacin Divisin Mdulo, resto de una divisin entera Decremento Incremento Determina el tamao en bytes de un operando

En las operaciones de decremento e incremento, en funcin de la posicin del operador, se consigue un pre-incremento (++A) o un post-incremento (A++)

a=3; b=4*a++;
a=3; b=4*++a;

// b=12 y a=4

// b=16 y a=4

Los Operadores
Relacionales < > >= <= == != ?: Menor que Mayor que Mayor o igual que Menor o igual que Igual Distinto Expresin Condicional De bits ! && || NOT AND OR Punteros & * -> Direccin Indireccin Puntero a estructura Lgicos ~ & ^ | >> << Complemento a 1 AND OR EXCLUSIVA OR Desplazamiento a derechas Desplazamiento a izquierdas

Funciones
Son bloques de sentencias; al igual que las variables, las funciones deben definirse antes de utilizarse. Tipo_Dato Nombre_Funcion { (Sentencias); } int suma (int a, int b) { int c; c = a + b; return c; } (tipo param1, param2, )

void main ( ) { temporal_0 = suma(3,4); temporal_1 = suma(100,150); }

Declaraciones de Control
El compilador CCS C admite las siguientes: If-Else. While. Do-While. For. Switch-Case. Return. Break, Continue y Goto.

Declaraciones de Control
IF-ELSE
if (expresin) sentencia_1; [else sentencia_2;] if (expresin_1) sentencia_1; [else if (expresin_2) sentencia_2;] [else sentencia_3;]
if (expresin_1) { sentencia_1; sentencia_2; } [else { sentencia_1; sentencia_2; sentencia_3; }]

Declaraciones de Control
IF (RB0==0) B=10; <> IF (RB0!=1) B=10; ELSE C=5; ELSE C=5

B=10

RB0=0?

C=5

Declaraciones de Control
SWITCH-CASE
switch (expresin) { case constante 1: sentencias; break; case constante 2: sentencias; break; [default: sentencias;] }
Evala la expresin y en orden a la CONSTANTE adecuada realiza las sentencias asociadas. Si ninguno de los CASE corresponde a la CONSTANTE se ejecuta DEFAULT (este comando es opcional) El comando BREAK provoca la salida del SWITCH, de lo contario se ejecuta el siguiente CASE.

Declaraciones de Control
A=0? NO A=2? NO A=3? NO B=3 B=2 SI B=1

SI

SI

Switch (A) { case 0: B=1; break; case 2: B=2; break; case 3: B=3; break; default: break; }

Declaraciones de Control
FOR
for (inicializacin ; condicin de finalizacin ; incremento) { sentencias; }
N=1

for (N=1; N<=10; N++) { Printf (%u,N); }

N<=10

SI Imprimir N N=N+1

NO

Declaraciones de Control
WHILE while (expresin) { sentencias } DO-WHILE Do { sentencias; } while (expresin);

DO-WHILE se diferencia del WHILE y del FOR en la condicin de finalizacin la cual se evala al final de bucle, por lo que las sentencias se ejecutan al menos una vez.

Declaraciones de Control
N=5 Y M<10 A=1 B=2 While (N>5 && M<10) { A=1; B=2; }

A=1 B=2 N=5 Y M<10

Do { A=1; B=2; } While (N>5 && M<10);

Declaraciones de Control
Otros: Return: Se emplea para devolver datos en funciones Break: Permite salir de un bucle, se utiliza para While, For, Do y Switch. Goto: Provoca un salto incondicional

Comentarios
// Comentario que terminara al final de esta lnea
/* Este comentario no finaliza al final de la lnea, sino finaliza cuando se cierre el comentario */

Directivas

Funciones

Funciones

Funciones

Funciones

Funciones

Funciones

Por: Mishell Sanchez Guevara mishellsanchez09@gmail.com msanchezg@uni.pe

You might also like