Escolar Documentos
Profissional Documentos
Cultura Documentos
UTN FRC
Integrantes
Gabriel Gonzlez
Gianluca Salamida
Florencia Molla
Benjamn Cub
Legajo
70123
71640
69477
70572
UTN FRC
Contenido
Introduccin ........................................................................................................................... 6
MPLAB C18 .......................................................................................................................... 8
Caractersticas .................................................................................................................... 8
Qu es MPLAB C18 C? ...................................................................................................... 8
Requerimientos de instalacin para C18 ........................................................................... 9
Creacin de un nuevo proyecto Pasos .......................................................................... 10
Creacin de un nuevo programa ...................................................................................... 12
Flujo de ejecucin en C18................................................................................................. 13
Ejemplos de aplicacin en MPLAB C18 ............................................................................ 15
MPLAB C24 y C32 ............................................................................................................. 21
PICC (Hi-Tech) ....................................................................................................................... 22
Instalacin y configuracin............................................................................................... 22
Realizacin de un nuevo proyecto en MPLAB utilizando el compilador PICC-Lite ...... 23
Simulacin ........................................................................................................................ 27
Utilizacin de Interrupciones ........................................................................................... 29
MikroC .................................................................................................................................. 30
Caractersticas principales del MikroC ............................................................................. 30
TIPOS DE DATOS EN MIKROC ........................................................................................... 31
Variables y constantes...................................................................................................... 31
Reglas para nombrar .................................................................................................... 32
Declaracin de variables .............................................................................................. 32
Declaracin de constantes ........................................................................................... 33
Definir los nuevos tipos de datos ................................................................................. 33
mbito de variables y constantes ................................................................................ 33
Clases de almacenamiento ........................................................................................... 33
Operadores ....................................................................................................................... 34
Operadores aritmticos................................................................................................ 34
Operadores de asignacin ............................................................................................ 34
Operadores de incremento y decremento ................................................................... 34
Operadores relacionales .............................................................................................. 35
UTN FRC
Operadores lgicos....................................................................................................... 35
Operadores de manejo de bits ..................................................................................... 35
Conversin de tipo de datos ........................................................................................ 35
Estructuras de control ...................................................................................................... 36
Operador condicional if-else ........................................................................................ 36
Operador Switch........................................................................................................... 36
Bucles ............................................................................................................................... 36
Bucle While................................................................................................................... 36
Bucle For ....................................................................................................................... 36
Bucle Do-while.............................................................................................................. 36
Sentencias de salto ........................................................................................................... 37
Sentencia Break ............................................................................................................ 37
Sentencia continue ....................................................................................................... 37
Sentencia goto .............................................................................................................. 37
Tipos de datos avanzados................................................................................................. 37
Matrices ........................................................................................................................ 37
Matrices bidimensionales ............................................................................................ 37
Punteros ....................................................................................................................... 37
Estructuras.................................................................................................................... 38
Funciones.......................................................................................................................... 38
Funcin principal .......................................................................................................... 38
Valor devuelto .............................................................................................................. 38
Declarar prototipos de funciones ................................................................................. 38
Llamar una funcin ....................................................................................................... 39
Caractersticas principales del preprocesador ................................................................. 39
Directivas del prepocesador ......................................................................................... 39
Mikroc PRO para PIC......................................................................................................... 40
Acceso a los registros de funciones especiales (SFR) ................................................... 40
Acceso a los bits individuales ....................................................................................... 40
Tipo sbit ........................................................................................................................ 41
Tipo bit.......................................................................................................................... 41
Insertar codigo asm en C .............................................................................................. 41
GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
UTN FRC
UTN FRC
UTN FRC
Introduccin
En el principio de los tiempos de los Microprocesadores la nica forma que haba de
programarlos era utilizando el Cdigo Mquina en el cual la unidad central de proceso o CPU
procesaba instrucciones que venan definidas por un conjunto de unos y ceros de 8, 16, 32 o ms
bits. Cada combinacin diferente de bits, tiene para el micro un significado distinto, y le indicar a
ste que realice una tarea determinada. Sin embargo, este tipo de programacin resultaba poco
inteligible para el ser humano, porque se tenan que manejar constantemente conjuntos de unos
y ceros sin ningn significado aparente. Por este motivo se desarroll el lenguaje Ensamblador,
que consista en asignar a cada combinacin de bits un conjunto de pocas letras (denominado
mnemnico) que representaba mejor el significado de la operacin o instruccin que se le indica al
microprocesador.
Cuando se compila un programa en Ensamblador, el compilador de Ensamblador realiza
automticamente la traduccin de los mnemnicos a Cdigo Mquina (conjunto de bits), que es el
nico lenguaje que entiende la CPU.
Durante mucho tiempo el ensamblador ha sido el lenguaje utilizado de manera casi
mayoritaria para programar microcontroladores. Sin embargo, este lenguaje implementa el
conjunto de instrucciones que cada microcontrolador en concreto entiende, por lo que es
totalmente dependiente del hardware, sin que pueda hacerse transportable a otros
microcontroladores de una manera fcil. Esto quiere decir que el Ensamblador no constituye
realmente un lenguaje de programacin estndar, capaz de permitir el transportar un programa
diseado para un microcontrolador a otro que tenga un conjunto de instrucciones diferente.
La programacin en lenguaje de alto nivel permite la creacin de programas
independientemente de la plataforma utilizada, ya estemos hablando de microprocesadores o
microcontroladores. Adems hay que tener en cuenta que los microcontroladores evolucionaron a
partir de los microprocesadores y no al revs, los microcontroladores aparecieron en la industria
por la necesidad de tener sistemas programados embebidos. Algunos de estos lenguajes de alto
nivel son el BASIC, FORTRAN, PASCAL y C; este ltimo adems de permitir la programacin desde
un nivel cercano al programador (alto nivel), tambin brinda la posibilidad de controlar aspectos
ms cercanos al hardware (bajo nivel), como la manipulacin directa de bits y bytes, por lo que se
considera que es un lenguaje de nivel medio, ms que de alto nivel, est ya sera una razn para
destacar el compilador de C.
Cuando hablamos del compilador en C, hablamos de un lenguaje que dispone de un
conjunto de operadores, datos y comandos que le confieren, al mismo tiempo, potencia y facilidad
de programacin, lo que permite un tiempo de desarrollo de programas mucho menor que con el
lenguaje Ensamblador. Adems, con el lenguaje C se asegura la portabilidad entre diferentes
plataformas hardware o software, lo que quiere decir, por ejemplo, que un algoritmo
implementado en C en una plataforma con Linux puede ser adaptado, prcticamente sin
modificaciones, a un PIC. Esto permite el aprovechamiento de numerosos algoritmos que se
encuentran ya disponibles para otras plataformas diferentes a los PIC. El Ensamblador, por el
GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
UTN FRC
contrario, es fuertemente dependiente del hardware, por lo que no permite su adaptacin de una
plataforma a otra distinta.
Por otro lado, a la hora del desarrollo de programas estructurados el lenguaje C permite
desarrollar programas estructurados en funciones, bloques o procedimientos, lo que proporciona
una compartimentacin del cdigo.
La utilizacin del lenguaje C supone una alternativa muy interesante por su rapidez,
facilidad, y portabilidad, principalmente, a la hora de ser utilizados para desarrollar un programa
para un Microcontroladores.
Cuando hablamos de compiladores para Microcontroladores, la oferta de compiladores de
C para PIC es muy numerosa, a la hora de elegir entre uno u otro es necesario tener en cuenta los
siguientes factores:
o
o
o
UTN FRC
MPLAB C18
El C18-MPLAB Compiler, es un compilador profesional de C para PIC18 MCU, y una
poderosa herramienta compatible con ANSI para la familia PIC18 de PICmicro de 8-bit MCU.
MPLAB C es una aplicacin de consola para Windows de 32-bit que sirve como un IDE (Integrated
Development Environment) de MPLAB.
Caractersticas
o
o
o
o
o
o
o
o
o
o
o
Qu es MPLAB C18 C?
El cdigo es escrito utilizando notacin ANSI C estndar. El cdigo fuente es compilado en
bloques de cdigo de programa que luego son enlazados con otros bloques de cdigo y datos, y
finalmente son ubicados en las regiones de memoria del microcontrolador PIC18xxxx. Este proceso
se denomina construccin", y se ejecuta muchas veces en el desarrollo del programa a medida
que se escribe el cdigo, se prueba y se depura. Este proceso se puede hacer ms inteligente
mediante el uso del make" que invoca al compilador slo para los archivos de cdigo fuente de C
en los proyectos que han cambiado desde la ltima depuracin.
o
o
o
o
UTN FRC
o
o
C
Programacin de alto nivel.
Utilizado para descripcin de
algoritmos.
Programa ms corto.
Requiere conocer a detalle la
arquitectura interna del microcontrolador, el set
de instrucciones, los registros y su
funcionamiento interno.
No es portable, debido a que depende
dela estructura interna del microcontrolador.
No posee estructura ni control de
tipos, por lo cual, el programador debe cuidar
por s mismo de proveer una estructura
adecuada a su programa y controlar los tipos de
datos.
El mantenimiento del cdigo (revisin,
modificacin, ampliacin) es ms complejo.
Mayor velocidad
UTN FRC
MPASM Assembler:
C:\mcc18\mpasm\MPASMWIN.exe
10
UTN FRC
C:\mcc18\bin\mcc18.exe
o
MPLIB Librarian:
C:\mcc18\bin\MPLib.exe
11
UTN FRC
Se crea un nuevo cdigo fuente (con extensin .c) y se asigna a la carpeta Source
files que hace parte del proyecto que acaba de crear.
12
UTN FRC
13
UTN FRC
Ejemplo:
declaraciones globalesmain( ) {
variables locales
bloque
}
funcion1( ) {
variables locales
bloque
}
14
UTN FRC
#include <p18f2550.h>
void main(void){
ADCON1=0x0F;//Todos entrada/salida digitales.TRISA=0xFF; //Todos como entrada.TRISB=0X00;
}
GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
15
UTN FRC
else{
LATB=0x0F;
}
}
}
Led titilando
#include <p18f2550.h>
#include <delays.h>
void main(void){
ADCON1=0x0F;//Todos entrada/salida digitales.TRISA=0xFF; //Todos como entrada.GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
16
UTN FRC
TRISB=0X00;
Leds secuenciales
17
UTN FRC
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = OFF
#pragma config STVREN = OFF, LVP = OFF, XINST = OFF, DEBUG = OFF
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CPB = OFF, CPD = OFF
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTRB = OFF
unsigned char k;
void main(void){
ADCON1=0x0F; /* Todos entradas/salidas digitales */
TRISA=0xFF;
TRISB=0xF0;
LATB=0x00;
while(1){
/* Bucle infinito */
}else{
LATB=0x01;
*/
for(k=1;k<=4;k++){
/* Rota 4 veces */
Delay10KTCYx(30);
/* Demora 300ms */
LATB=(PORTB<<1);
}
}
}
}
18
UTN FRC
#include <p18f2550.h>
#include <delays.h>
void main(void){
ADCON1=0x0F;//Todos entrada/salida digitales.-
19
UTN FRC
LATA=0x00;
Unidad=0;
Decena=0;
Centena=0;
while(1){
Visualizacion();
++Unidad;
if(Unidad==10){
Unidad=0;
++Decena;
if(Decena==10){
Decena=0;
++Centena;
}
}
}
}
void Visualizacion (void){
for(i=1;i<=20;++i){
LATB=Display7Seg[Unidad];
UnidadBit=1;
20
UTN FRC
}
}
21
UTN FRC
PICC (Hi-Tech)
Hi-Tech PICC es un compilador de alto rendimiento para las familias 10/12/14/16/17 de
Microchip, el mismo que implementa en forma completa ISO/ANSI C (excepto recursin de
funciones); adems, maneja varios tipos de variables, incluso las de punto flotante de 24 bits e
IEEE de 32 bits. Este compilador genera un cdigo altamente optimizado, brindando al
programador capacidades solamente limitadas por las caractersticas del microcontrolador. Entre
las caractersticas ms importantes se pueden destacar:
o
o
o
o
o
o
o
o
o
Confiabilidad probada.
Manejo automtico de pginas y bancos de memoria.
Mltiples niveles de optimizacin2 en cdigo C.
Optimizacin en ensamblador.
Libreras estndar de ANSI C.
Inclusin de lenguaje ensamblador entre cdigo C.
Ilimitado nmero de archivos fuente.
Compatible con MPLAB IDE, MPLAB ICD y otras herramientas de desarrollo.
Compatible con varias plataformas: Windows, Linux, Unix, Mac OS X, S Solaris.
Instalacin y configuracin
Al realizar la instalacin del compilador PICC-Lite es aconsejable seguir la configuracin por
defecto del instalador, sobre todo cuando no se tiene mucha experiencia. Despus de haber
instalado el compilador, lo primero que se debe comprobar es el correcto enlace entre los dos
programas.
Dentro de la ventana Set Languaje Tool Locations se debe asegurar de que sea para
PICC Asembler, PICC Compiler y PICC Linker el archivo PICL.EXE est correctamente
direccionado (Por lo general dentro de Raz:\Archivos de programa\HI-TECH Software\ PICCLite\9.50\BIN\), en caso contrario, utilizar la herramienta de configuracin Configure MPLAB en
el men del programas o ejecutar el archivo MPLABConfig.EXE que se encuentra dentro de la
carpeta BIN en el directorio de instalacin del compilador.
22
UTN FRC
4. Una vez realizado esto, ingresar el nombre del proyecto y elegir la carpeta en la cual
se grabarn los archivos.
23
UTN FRC
5.
24
UTN FRC
25
UTN FRC
9. Finalmente, se debe incluir el archivo recin guardado dentro de los archivos fuente
del proyecto (click derecho en Source Files).
10. A partir de ahora, se puede compilar, simular, etc., el proyecto. Si la compilacin ha sido
exitosa, se presentar un resumen de consumo de memoria en la ventana de salid
26
UTN FRC
Simulacin
Una de las caractersticas ms importantes al utilizar el compilador PICC dentro del
entorno de MPLAB, es el empleo del simulador con todas sus capacidades. En la figura se muestra
el entorno de simulacin de un programa demostrativo (no tiene aplicacin) sencillo que realiza
un conteo cada 500ms, as como una salida que oscila con el mismo periodo. A continuacin se
puede observar el cdigo de este programa.
27
UTN FRC
Como se observa en el
programa, ste incorpora un
archivo de retardos demoras.c, el
mismo que se detalla a
continuacin.
28
UTN FRC
Utilizacin de Interrupciones
El compilador PICC maneja las interrupciones mediante la funcin interrupt , la misma que
opera de manera diferente a las dems funciones, ya que respalda registros importantes al
ingresar a la interrupcin y los restituye al salir de la misma.
Cabe destacar que dentro de la funcin interrupcin solamente se pueden utilizar
variables globales.
Para los microcontroladores de la familia media el encabezado de la funcin interrupcin
siempre es void interrupt tc_int(void).
A continuacin se muestra parte del cdigo de un programa que utiliza interrupciones del
Timer0 y Timer2.
29
UTN FRC
MikroC
Caractersticas principales del MikroC
Este lenguaje es muy similar al C estndar, no obstante en determinados aspectos difiere
del ANSI estndar en algunas caractersticas. Algunas de estas diferencias se refieren a las mejoras,
destinadas a facilitar la programacin de los microcontroladores PIC, mientras que las dems son
la consecuencia de la limitacin de la arquitectura del hardware de los PIC.
o
Fases de compilacin
2.
3.
Calcular temperatura; y
30
UTN FRC
4.
Al aadir un prefijo (calificador) a cualquier tipo de dato entero o carcter, el rango de sus
posibles valores cambia as como el nmero de los bytes de memoria necesarios. Por defecto, los
datos de tipo int son con signo, mientras que los de tipo char son sin signo. El calificador signed
(con signo) indica que el dato puede ser positivo o negativo. El prefijo unsigned indica que el dato
puede ser slo positivo. Note que el prefijo es opcional.
Variables y constantes
Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado
durante la ejecucin de programa. En C, las variables tienen tipo, que significa que es necesario
especificar el tipo de dato que se le asigna a una variable (int, float etc.).
31
UTN FRC
Una constante tiene las mismas caractersticas que una variable excepto el hecho de que
su valor asignado no puede ser cambiado durante la ejecucin de programa. A diferencia de las
variables, las constantes se almacenan en la memoria Flash del microcontrolador para guardar el
mayor espacio posible de memoria RAM. El compilador las reconoce por el nombre y el prefijo
const. En mikroC, el compilador reconoce automticamente el tipo de dato de una constante, as
que no es necesario especificar el tipo adicionalmente.
Declaracin de variables
Cada variable debe ser declarada antes de ser utilizada en el programa. Como las variables
se almacenan en la memoria RAM, es necesario reservar el espacio para ellas (uno, dos o ms
bytes). El programa maneja las variables con los nombres asignados. El compilador las reconoce
como nmeros en la memoria RAM sin conocer su tamao y formato. Para mejorar la legibilidad
de cdigo, las variables se declaran con frecuencia al principio de las funciones.
32
UTN FRC
Declaracin de constantes
Similar a las variables, las constantes deben ser declaradas antes de ser utilizadas en el
programa. En mikroC, no es obligatorio especificar el tipo de constante al declararla. Por otra
parte, las constantes deben ser inicializadas a la vez que se declaran. El compilador reconoce las
constantes por su prefijo const utilizado en la declaracin.
Las constantes de enumeracin son un tipo especial de constantes enteras que hace un
programa ms comprensible al asignar los nmeros ordinales a las constantes. Por defecto, el
valor 0 se asigna automticamente a la primera constante entre llaves, el valor 1 a la segunda, el
valor 2 a la tercera etc.
Clases de almacenamiento
Las clases de almacenamiento se utilizan para definir el mbito y la vida de variables,
constantes y funciones dentro de un programa. En mikroC se pueden utilizar diferentes clases de
almacenamiento:
o
Auto: es una clase de almacenamiento por defecto para las variables locales,
as que se utiliza raramente. Se utiliza para definir que una variable local tiene
duracin local. La clase de almacenamiento auto no se puede utilizar con
variables globales.
Static: es una clase de almacenamiento por defecto para las variables globales.
Especifica que una variable es visible dentro del archivo. A las variables locales
33
UTN FRC
Operadores
Operadores aritmticos
Los operadores aritmticos se utilizan en las operaciones aritmticas y siempre devuelven
resultados numricos. Hay dos tipos de operadores, los unitarios y los binarios. A diferencia de las
operaciones unitarias que se realizan sobre un operando, las operaciones binarias se realizan
sobre dos operandos.
Operadores de asignacin
34
UTN FRC
Operadores relacionales
Operadores lgicos
35
UTN FRC
Estructuras de control
Operador condicional if-else
El operador if se puede utilizar solo o asociado al operador else (if-else).
El operador if-else se puede sustituir por el operador condicional '?:'
Operador Switch
A diferencia de la sentencia if-else que selecciona entre dos opciones en el programa, el
operador switch permite elegir entre varias opciones.
La operacin switch se ejecuta de la siguiente manera: primero se ejecuta el selector y se
compara con la constante1. Si coinciden, las sentencias que pertenecen a ese bloque se ejecutan
hasta llegar a la palabra clave break o hasta el final de la operacin switch. Si no coinciden, el
selector se compara con la constante2. Si coinciden, las sentencias que pertenecen a ese bloque se
ejecutan hasta llegar a la palabra clave break etc. Si el selector no coincide con ninguna constante,
se ejecutarn las operaciones que siguen al operador default.
Bucles
Bucle While
Los comandos se ejecutan repetidamente (el programa se queda en el bucle) hasta que la
expresin llegue a ser falsa. Si la expresin es falsa en la entrada del bucle, entonces el bucle no se
ejecutar y el programa continuar desde el fin del bucle while.
Un tipo especial del bucle de programa es un bucle infinito. Se forma si la condicin sigue
sin cambios dentro del bucle. La ejecucin es simple en este caso ya que el resultado entre llaves
es siempre verdadero (1=verdadero), lo que significa que el programa se queda en el mismo bucle.
Bucle For
La ejecucin de esta secuencia de programa es similar al bucle while, salvo que en este
caso el proceso de especificar el valor inicial (inicializacin) se realice en la declaracin. La
expresin_ inicial especifica la variable inicial del bucle, que ms tarde se compara con la
expresin_ de_condicin antes de entrar al bucle. Las operaciones dentro del bucle se ejecutan
repetidamente y despus de cada iteracin el valor de la expresin_inicial se incrementa de
acuerdo con la regla cambiar_expresin. La iteracin contina hasta que la
expresin_de_condicin llegue a ser falsa.
Bucle Do-while
La expresin cambiar_condicin se ejecuta al final del bucle, que significa que operacin se
ejecuta como mnimo una vez sin reparar en que si la condicin es verdadera o falsa. Si el
resultado es distinto de 0 (verdadero), el procedimiento se repite.
36
UTN FRC
Sentencias de salto
Sentencia Break
La sentencia break se puede utilizar dentro de cualquier bucle (while, for, do while) y en
las sentencias switch tambin. En stas la sentencia break se utiliza para salir de las sentencias
switch si la condicin case es verdadera.
Sentencia continue
La sentencia continue colocada dentro de un bucle se utiliza para saltar una iteracin. A
diferencia de la sentencia break, el programa se queda dentro del bucle y las iteraciones
continan.
Sentencia goto
La sentencia goto le permite hacer un salto absoluto al otro punto en el programa. Esta
caracterstica se debe utilizar con precaucin ya que su ejecucin puede causar un salto
incondicional sin hacer caso a todos los tipos de limitaciones de anidacin. El punto destino es
identificado por una etiqueta, utilizada como un argumento para la sentencia goto. Una etiqueta
consiste en un identificador vlido seguido por un colon (:).
Matrices bidimensionales
Una matriz bidimensional se declara al especificar el tipo de dato de matriz, el nombre de
matriz y el tamao de cada dimensin.
En la declaracin de esta matriz nmero_de_filas y nmero_de_columnas representan el
nmero de filas y columnas en las que consiste una tabla, respectivamente.
Punteros
Un puntero es una variable destinada a recibir una direccin. Un puntero apunta a una
localidad de memoria, referenciada por una direccin. En C, la direccin de un objeto se puede
obtener por medio un operador unitario &. Para acceder al contenido de la memoria en una
direccin especfica (tambin llamado objeto apuntado), se utiliza un operador de indireccin (*).
37
UTN FRC
Estructuras
No obstante, al utilizar este mtodo todos los elementos deben ser del mismo tipo. Al
utilizar estructuras, es posible agrupar diferentes tipos de variables bajo el mismo nombre. Las
variables dentro de una estructura se le denominan los miembros de la estructura.
Funciones
Funcin principal
La funcin principal main() es una funcin particular puesto que es la que se ejecuta al
iniciar el programa. Adems, el programa termina una vez completada la ejecucin de esta
funcin. El compilador reconoce automticamente esta funcin y no es posible llamarla por otra
funcin.
Cada funcin debe ser declarada apropiadamente para poder interpretarla correctamente
durante el proceso de compilacin. La declaracin contiene los siguientes elementos:
o
o
o
Valor devuelto
Una funcin puede devolver un valor (esto no es obligatorio) por medio de la palabra clave
return. Al llegar a return, la funcin evala un valor (puede ser una expresin) y lo devuelve a la
lnea de programa desde la que fue llamada.
tipo de resultado
2.
nombre de funcin
3.
tipos de parmetros
4.
38
UTN FRC
Definiciones de macro.
Inclusiones de archivos.
Control de compilacin.
39
UTN FRC
cdigo. Esto es til cuando se quiere restringir la definicin slo a una parte particular del
programa.
Inclusion de archivos
La directiva de preprocesador #include copia un archivo especfico en el cdigo fuente. El
cdigo incluido debe observar la sintaxis de C para ser compilado correctamente.
Hay dos formas de escribir estas directivas. En el primer ejemplo, slo el nombre de
archivo se especifica, as que el preprocesador lo buscar dentro del archivo include. En el
segundo ejemplo, se especifica la ruta entera, as que el archivo estar directamente incluido (este
mtodo es ms rpido).
#include <nombre_de_archivo>
#include "C:\Ruta\nombre_de_archivo.h"
40
UTN FRC
Tipo sbit
Si quiere declarar una variable que corresponde a un bit de un SFR, hay que utilizar el tipo
sbit. Una variable de tipo sbit se comporta como un puntero y se debe declarar como una variable
global:
sbit Botn_PARADA at PORTA.B7; // Botn_PARADA est definido
...
void main() {
PORTA.B7
...
Botn_PARADA
}
En este ejemplo, El Botn_PARADA es una variable declarada por el usuario, mientras que
PORTA.B7 (bit 7 del puerto PORTA) ser automticamente reconocido por el compilador.
Tipo bit
El compilador mikroC PRO for PIC proporciona un tipo de datos bit que se puede utilizar
para declarar variables. No se puede utilizar en las listas de argumentos, punteros y los valores
devueltos de funciones. Adems, no es posible declarar e inicializar una variable de tipo bit en la
misma lnea. El compilador determina el bit en uno de los registros disponibles para almacenar las
variables.
bit bf;
41
UTN FRC
asm
{
instrucciones en ensamblador
...
}
Los cdigos escritos en ensamblador pueden utilizar constantes y variables anteriormente
definidos en C. Por supuesto, como el programa entero est escrito en C, sus reglas se aplican al
declarar estas constantes y variables.
Funcin de interrupcin
Una interrupcin detiene la ejecucin normal de un programa para ejecutar las
operaciones especficas. Una lista de sentencias a ejecutar debe estar escrita dentro de una
funcin particular denominada interrupt(). La sintaxis de una interrupcin en mikroC se parece a lo
siguiente:
void interrupt() {
cnt++ ;
Libreras
Las funciones 'Delay_ms', 'LCD_out', 'LCD_cmd', etc; estn definidas en las libreras
contenidas en el compilador mikroC.
Una librera representa un cdigo compilado, anteriormente escrito en mikroC, que
contiene un conjunto de variables y funciones. Cada librera tiene un propsito especfico. Por
ejemplo, la librera LCD contiene funciones de visualizacin de la pantalla LCD, mientras que
C_math proporciona algunas funciones matemticas.
Antes de utilizar alguna de ellas en el programa, es necesario comunicrselo al compilador
al marcarlas en la lista de las libreras del compilador existentes. Si el compilador encuentra una
42
UTN FRC
Libreras miscelneas:
43
UTN FRC
Editar un programa
Depurar (ejecutar el programa paso a paso para asegurarse de que se ejecutan las
operaciones deseadas).
44
UTN FRC
Caractersticas principales
45
UTN FRC
Device (dispositivo):
Al seleccionar el tipo de microcontrolador a utilizar permite al compilador extraer
el archivo de definicin (archivo .def) asociado. El archivo de definicin de un
microcontrolador contiene las informaciones especficas de sus registros SFR, de sus
direcciones de memoria y algunas variables de programacin especficas a ese tipo del
microcontrolador. Es obligatorio crear un archivo .hex compatible.
Oscillator (oscilador):
Se debe especificar la velocidad de operacin del microcontrolador. Por
supuesto, este valor depende del oscilador utilizado. El compilador la necesita para
compilar rutinas, lo que requiere informacin del tiempo (por ejemplo, la funcin
Delay_ms). Ms tarde, el programador necesitar esta informacin tambin. La
velocidad de operacin se configura de modo que permita al oscilador interno del
microcontrolador funcionar a una frecuencia seleccionada.
Build/Debugger Type:
Todo el proceso de compilar (building) est compuesto por anlisis
sintctico (parsing), compilar, enlazar (linking) y generar los archivos .hex. El tipo
de compilacin le permite ajustar el modo de compilacin. Dependiendo del modo
seleccionado, difieren los archivos generados a cargar en el microcontrolador.
Release:
Al elegir esta opcin, el compilador no puede afectar ms a la ejecucin de
programa despus de la compilacin. El programa a cargar en el microcontrolador
no ser modificado de ninguna manera.
46
UTN FRC
ICD debug:
Al elegir esta opcin, una vez completado el proceso de la compilacin y
cargado el programa en la memoria del microcontrolador, el compilador se queda
conectado al microcontrolador por medio del cable USB y el programador, y
todava puede afectar a su funcionamiento. El archivo .hex generado contiene los
datos adicionales que permiten el funcionamiento del depurador. Una
herramienta denominada mikroICD (Depurador en circuito - In Circuit Debugger)
permite ejecutar el programa paso a paso y proporcionar un acceso al contenido
actual de todos los registros de un microcontrolador real.
El simulador no utiliza los dispositivos reales para simular el funcionamiento del
microcontrolador, as que algunas operaciones no pueden ser reproducidas (por ejemplo,
interrupcin). De todos modos, resulta ms rpido depurar un programa por medio de un
simulador. Adems, no se requiere ningn dispositivo destino.
47
UTN FRC
ha encontrado ningn error. Durante el proceso de compilacin se generan muchos mensajes que
se visualizan en la ventana Messages. Estos mensajes consisten en informacin, advertencia y
errores. Cada error encontrado se asocia con su lnea de programa y su descripcin.
Como un error en el cdigo puede generar mucho ms errores, simplemente se debe
intentar solucionar el primer error en la lista y despus recompilar el programa. En otras palabras,
es recomendable solucionar los errores uno a uno.
Depurar el programa
La depuracin es un paso muy importante ya que permite probar el programa despus de
una compilacin realizada con xito, o solucionar los errores descubiertos mientras se ejecuta el
programa. Como ya hemos visto, hay dos modos de depurar: un depurador software que simula el
funcionamiento del microcontrolador (modo por defecto) y depurador hardware (mikroICD) que
lee directamente el contenido de la memoria del microcontrolador. El procedimiento de
depuracin es el mismo sin reparar en el modo elegido. En caso de elegir la opcin ICD debug, hay
que cargar el programa en el microcontrolador antes de depurarlo.
Para iniciar la depuracin, se debe pulsar sobre la opcin Start debugger del men Run. El
editor del cdigo ser ligeramente modificado automticamente y aparecer una ventana
denominada Watch Values. El principio de depuracin se basa en ejecutar el programa paso a paso
y monitorear el contenido de los registros y los valores de las variables. De este modo, es posible
comprobar el resultado de un clculo y ver si algo inesperado ha ocurrido. Al ejecutar el programa
paso a paso, se podr localizar los problemas con facilidad.
Comandos de depuracin
Hay varios comandos disponibles para depurar el cdigo:
o
Step Into: Ejecuta una sola instruccin. Cuando la instruccin es una llamada a una rutina,
el depurador har un salto a la rutina y se detendr despus de ejecutar la primera
instruccin dentro de la rutina.
Step Over: Se ejecuta una sola instruccin. Cuando la instruccin es una llamada a una
rutina, el depurador no har un salto a la rutina, sino que se ejecutar toda la rutina. El
depurador se detiene a la primera instruccin despus de la llamada a la rutina.
Step out: Se ejecutan las dems instrucciones dentro de la rutina. El depurador se detiene
inmediatamente al salir de la rutina.
48
UTN FRC
Breakpoints muestra dnde estn los puntos de ruptura. Las lneas designadas como puntos de
ruptura estn marcadas en rojo.
La lnea que se est ejecutando actualmente est marcada en azul. Es posible leer el
contenido de registros y variables seleccionados en la ventana Watch Values en cualquier
momento. Para ejecutar la parte de programa desde la lnea en la que est el cursor hasta el punto
de ruptura, utilice el comando Run/Pause Debugger.
Stopwatch (cronometro)
Para saber cunto tiempo tarda un microcontrolador en ejecutar una parte del programa,
se debe seleccionar la opcin Run/View Stopwatch. El tiempo que tarda un comando (step into,
step over, run/pause etc.) en ejecutarse por el depurador se mide automticamente y se visualiza
en la ventana Stopwatch. Por ejemplo, se mide tiempo para ejecutar un programa, tiempo para
ejecutar el ltimo paso etc.
Programar el microcontrolador
Si se han solucionado todos los errores en el cdigo y el programa est listo para ser
utilizado, el siguiente paso es cargarlo en el microcontrolador. El programador PICflash se utiliza
para este propsito. Es una herramienta diseada para programar todos los tipos de
microcontroladores PIC. Est compuesto por dos partes:
o
La parte hardware se utiliza para introducir un cdigo hexadecimal (el programa a ser
cargado en el microcontrolador) y para programar el microcontrolador por medio de
niveles de voltaje especficos. Durante el proceso de la programacin, un nuevo programa
se escribe en la memoria flash del microcontrolador, mientras que el programa anterior se
borra automticamente.
49
UTN FRC
Terminal usart
El terminal USART representa una sustitucin para la estndar Windows Hyper Terminal.
Se puede utilizar para controlar el funcionamiento del microcontrolador que utiliza la
comunicacin USART. Tales microcontroladores estn incorporados en un dispositivo destino y
conectados al conector RS232 de la PC por medio de un cable serial.
La ventana USART terminal dispone de opciones para configurar la comunicacin serial y
visualizar los datos enviados/ recibidos.
Editor EEPROM
Al seleccionar la opcin EEPROM Editor del men Tools, aparecer una ventana como se
muestra en la siguiente figura. As es cmo funciona la memoria EEPROM del microcontrolador. Si
se quiere cambiar su contenido despus de cargar el programa en el microcontrolador, sta es la
forma correcta de hacerlo. El nuevo contenido es un dato de un tipo especfico (char, int o
double), primero se debe seleccionar, introducir el valor en el campo Edit Value y pulsar sobre
Edit. Luego, pulsar sobre el botn Save para guardarlo como un documento con extensin .hex. Si
la opcin Use EEPROM in Project est activa, los datos se cargarn automticamente en el
microcontrolador durante el proceso de la programacin.
50
UTN FRC
CC5x
El cc5x est diseado para generar el cdigo de manera optimizada, es decir, que
automticamente compacta el cdigo al mnimo. Es posible escribir cdigo que se compila a una
sola instruccin con sintaxis de C. este compilador se encargara de traducir el cdigo en C a
lenguaje maquina generando un programa equivalente que el microcontrolador sea capaz de
interpretar.
Caractersticas CC5X
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
Al igual que otros compiladores del lenguaje C, para microcontroladores, no sigue con
exactitud la norma ANSI C. por ello, a continuacin se explican algunos elementos necesarios para
comprender correctamente la manera de realizar programas en l.
GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
51
UTN FRC
Permite la asignacin de direcciones de las memorias pasiva (ROM) y activa (RAM), a los
punteros
Permite la utilizacin de instrucciones en lenguaje ensamblador dentro de los programas
escritor en lenguaje C
Permite la utilizacin de instrucciones de configuracin de los microcontroladores PIC
dentro de los programas escritos en lenguaje C
Otras caractersticas
Las bibliotecas son de espacio compacto y significativo, se puede guardar en comparacin
con el conjunto de bibliotecas de punto flotante de Microchip.
Actualizaciones gratuitas se pueden descargar en la misma pgina que contiene el
programa de instalacin inicial de su licencia.
Es multitarea: soporte utilizando mquinas de estado disponible. Muchos sistemas
altamente fiables y complejas se construyen utilizando mquinas de estado, por ejemplo, en las
telecomunicaciones. Un RTOS normal puede imponer retardos de respuesta impredecibles. Las
mquinas de estado son predecibles, rpidas y permite que el retardo mximo se calcule. Por lo
tanto, tratando con mquinas de estado y descubrir cmo usted puede utilizar microPIC que le
permitir realizar trabajos complejos de control, en tiempo real, es decir, sin retardos.
Cdigo compacto y eficiente uso de memoria RAM son las caractersticas sobresalientes
de CC5X. El compilador ha sido y sigue siendo lder en la generacin de cdigo compacto. Las
variables de hasta 32 bits es compatible, incluyendo variables de bit y funciones bits. CC5X es
adecuado para aplicaciones en tiempo real que requieren un fuerte control del cdigo
generado. El cdigo puede ser inspeccionado en el archivo de ensamblaje integral producido.
En comparacin con otros compiladores de C, los ahorros de cdigo son de 20 a 30%. Por
ejemplo, el programa ping.c encuentra en el sitio Internet de Microchip se redujo de 2.170 a 1.699
instrucciones al portarlo a CC5X. Eso es un ahorro de 471 instrucciones.
CC5X fue diseado para permitir el uso muy eficiente del cdigo y de la memoria RAM con
espacio limitado, con la facilidad de programacin C en lugar de montaje.
En cuanto a la escritura de aplicaciones de alto rendimiento, CC5X es una opcin muy
viable, ya que cuenta con compacidad similar o mejor que la asamblea. Desafortunadamente CC5X
no es hasta el nivel ANSI C, por lo que debe estar preparado para simplificar expresiones
complejas en las declaraciones que se pueden compilar a cdigo eficiente.
52
UTN FRC
o
o
o
o
o
Instalacin de CC5X
Requisitos del sistema
El compilador CC5X utiliza 32 bits de procesamiento (aplicacin de consola) y se ejecuta en
mquinas compatibles con PC utilizando Microsoft Windows. El programa de instalacin se ejecuta
en Windows. Se necesita alrededor de 3-5 MB de espacio libre en disco para completar la
instalacin.
Instalacin
Se necesita un archivo de licencia para instalar una edicin del compilador. Este archivo se
debe almacenar preferiblemente en la misma carpeta que el programa de instalacin. De lo
contrario el archivo de licencia tiene que ser ubicado durante el proceso de instalacin.
53
UTN FRC
La tabla muestra las diferencias entre las ediciones del compilador. Los precios
estn expresados en euros.
Versin
EXTENDIDO
STANDARD
GRATIS
Licencia de usuario
450
250
individual
Licencia personal (Nota 3)
320
160
Licencia adicional (Nota 2)
320
160
Asciende a un viejo
220
160
licencia CC5X
Perodo libre de
12 meses
12 meses
actualizacin completa
Actualizacin parcial extra
12 meses
12 meses
periodo (Nota 1)
Soporte
S
S
El tamao del cdigo
S
S
S
completo
Leanslice multitarea
S
Apoyo Linker (MPLINK)
S
S
S
PIC10 / 12/14/16
S
S
S
PIC17 / 18
Optimizacin completa
S
S
Limited
Enhanced ncleo 12 bits
S
S
Enhanced ncleo de 14
S
S
Limited
bits
8 variables enteras bits
S
S
S
16 variables enteras bits
S
S
S
24 variables enteras bits
S
S
32 variables enteras bits
S
S
De punto flotante de 16
S
S
bits
De punto flotante de 24
S
S
S
bits
Punto flotante de 32 bits
S
S
8 bits punto decimal fijo
S
S
16 bits punto decimal fijo
S
S
24 bits punto decimal fijo
S
S
32 bits punto decimal fijo
S
S
La arquitectura PIC es eficiente en comparacin con el enfoque carga / almacenamiento
utilizado por muchos otros microcontroladores y microprocesadores. Sin embargo, la actualizacin
poco a poco y la pgina representan un desafo para el programador al escribir cdigo de
aplicacin PIC. El compilador CC5X ofrece la actualizacin automtica de estos bits, mediante la
optimizacin avanzada para ahorrar espacio de cdigo en comparacin con simples
implementaciones del compilador.
Las variables locales son compatibles. El compilador CC5X realiza una compresin segura
mediante la comprobacin del alcance de las variables y la reutilizacin de las ubicaciones de RAM
GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
54
UTN FRC
cuando sea posible. Por tanto, el espacio de memoria RAM limitada se utiliza de manera
eficiente. Soporte de interrupcin puede ser complicado. El compilador CC5X permite a cada
declaracin a ser escrito en cdigo C. El compilador CC5X puede ampliar el nivel de
llamadas restricciones mediante el uso de declaraciones GOTO cuando sea posible. Esta
caracterstica es casi necesario para los dispositivos de ncleo 12 bits que tienen slo 2 niveles de
llamada.
Todos los dispositivos de gama media (PIC10 / PIC12 / PIC14 / PIC16) son compatibles a
travs de archivos de cabecera. Las capacidades de montaje en lnea permite a las rutinas de
montaje existentes que se incluirn en nuevas aplicaciones C.
55
UTN FRC
56
UTN FRC
57
UTN FRC
58
UTN FRC
59
UTN FRC
Dejaremos todas las opciones que vienen por defecto e iremos pulsando en Next hasta
finalizar la instalacin.
60
UTN FRC
61
UTN FRC
o
o
o
o
TRISB1 = 0; con esta instruccin defino el PIN RB1 del pic como salida los dems quedan
como entradas que es el valor que tienen por defecto. El nombre del identificador TRISB1
est definido en el archivo de cabecera, por eso es importante editarlo para saberlo.
RB1=0; con esta instruccin pongo a 0 el registro RB1 del pic. El identificador RB1 tambin
est definido en el archivo de cabecera pic16f877.h
delay_ms (250); llamo a la funcin de retardo y le paso como parmetro el valor de 250.
RB1=1; pongo a 1 la patilla RB1 del pic.
delay_ms (250); vuelvo a llamar a la funcin de retardo, para crear el efecto de parpadeo.
62
UTN FRC
Una vez escrito el cdigo fuente de nuestro programa lo guardamos en la carpeta que
queramos con extensin .c.
Y despus esta otra: sdcc -mpic14 -p16f877 --debug -Wl-c -Wl-m -I -oparpadeo_Led.hex
parpadeo_Led.o
Este montn de opciones que puede parecer complicado en realidad es muy fcil de
utilizar. Para futuros ejemplos lo nico que tienes que cambiar es lo siguiente:
-mpic14 si el pic es de la familia 16fXXX. Lo cambias por mpic16 si el pic pertenece a la
familia18fXXX.
p16f877 lo cambias por el nombre del dispositivo que utilices.
parpadeo_Led.c, parpadeo_led.hex y parpadeo_Led.o sustituye el nombre de estos
archivos por el nombre que t quieras darle a tus programas.
Si el proceso de compilacin ha sido correcto, SDCC nos habr generado entre otros los
siguientes archivos:
parpadeo_led.hex, parpadeo_Led.cod y parpadeo_Led.cof
Como vamos a simular el ejemplo con Proteus de esos tres archivos solo nos interesa el
que termina con extensin .cof
63
UTN FRC
Y aadimos SDCC a la lista de compiladores, ahora aadimos nuestro cdigo fuente, para
ello vamos al men de Proteus y seleccionamos Source Add/Remove Source files
Y aadimos nuestro archivo parpadeo_Led.c
Por ltimo nos queda crear el esquema del circuito en Proteus y cargar en el Pic el archivo
parpadeo_Led.cof
Despus de esto guardamos el circuito de Proteus en la misma carpeta donde hemos
guardado el ejemplo.
Y ya solo nos queda ejecutar el circuito en modo run paso a paso, segn se muestra en la
figura de abajo:
64
UTN FRC
Tambin al ser un proyecto libre hay un montn de libreras y ejemplos tambin bajo la
misma licencia (GPL), por ejemplo el proyecto Pingino utiliza este compilador, si tu quisieras
podras hacer un proyecto derivado de l y nadie te llamar pirata por hacerlo.
El lenguaje C que utiliza SDCC cumple ms con el estndar ANSI C que otros compiladores
como CCS. Por ejemplo SDCC admite la recursin de funciones y CCS no.
La desventaja principal de este compilador con respecto a otros comerciales como CCS
mikroC es que es un producto en desarrollo, por lo que ser menos fiable que estos. Adems casi
todos los compiladores comerciales disponen de funciones precompiladas que hacen muy fcil la
utilizacin de los recursos del PIC, con SDCC muchas de estas libreras estn todava en desarrollo.
Con respecto al IDE aunque para Linux existe Piklab, para Windows no hay todava
ninguno que funcione bien, se sabe de un nuevo IDE pero est todava en una versin alpha por lo
que est bastante incompleto todava y con errores.
Como se dijo anterior mente Las plataformas compatibles son, Linux - x86, Microsoft
Windows - 86, Microsoft Windows - x86_64 y Mac OS X son las primarias, los llamados
plataformas "apoyo oficial".
SDCC compila de forma nativa en Linux y Mac OS X utilizando gcc. De Windows liberacin
y captura compilaciones son hechas por compilacin cruzada para mingw32 en un host Linux.
Windows 9x / NT / 2000 / XP / Vista / 7/8 usuarios les recomienda utilizar Cygwin(IDE) o
pueden probar el no soportado Microsoft Visual C ++ crear scripts.
Para el SDCC de fondo utiliza un esquema de asignacin de registro mundial que debe ser
adecuado para otro 8 bits MCU. El optimizador mirilla utiliza un mecanismo de sustitucin basado
en normas, que es independiente MCU tipos de datos soportados son:
type
bool
char
short
int
long
float
pointer
width
1 bit
8 bits, 1 byte
16 bits, 2
bytes
16 bits, 2
bytes
32 bits, 4
bytes
4 bytes IEEE
754
default
unsigned
signed
signed
signed range
-128, +127
-32.768, +32.767
unsigned range
0, 1
0, +255
0, +65.535
signed
-32.768, +32.767
0, +65.535
signed
-2.147.483.648,
+2.147.483.647
0,
+4.294.967.295
1.175494351E38,
3.402823466E+38
1, 2, 3 or 4
bytes
generic
signed
65
UTN FRC
66
UTN FRC
Turbo C
Turbo C es un entorno de desarrollo integrado y compilador desarrollado por Borland para
programar en lenguaje C.
Un entorno de desarrollo integrado (en ingls: IDE), es una aplicacin informtica que
proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de
software. Normalmente, un IDE consiste de un editor de cdigo fuente, herramientas de
construccin automticas y un depurador.
Un compilador es un programa informtico que traduce un programa escrito en
un lenguaje de programacin a otro lenguaje de programacin. Usualmente el segundo lenguaje
es lenguaje de mquina, pero tambin puede ser un cdigo intermedio o simplemente texto. Este
proceso de traduccin se conoce como compilacin.
Su primera versin es de 1987, a la que siguieron las versiones 1.5 y 2.0, de 1989. Fue el
compilador ms popular para desarrollar en C, se le considera el primero.
Turbo C tiene dos modos separados de operacin. El primero que querr usar ciertamente
como comienzo para programar, es su entorno integrado de desarrollo. En este entorno se puede
controlar la edicin, compilacin y ejecucin usando pocas pulsaciones y mens fciles de
utilizar. El otro modo de operacin utiliza el mtodo tradicional, segn el cual se usa primero un
editor para crear el archivo, y despus compilarlo, enlazarlo y ejecutarlo manualmente. Este modo
se llama mtodo de lnea de rdenes.
Algo importante de Turbo C es que solo tiene 43 palabras claves (32 definidas por el
estndar ANSI y 11 que aadi Borland para permitir usar mejor algunos aspectos especiales del
entorno PC).
El lenguaje C da al programador lo que el programador quiere: pocas restricciones, pocas
quejas, cdigo rpido y eficacia. El programador, utilizando este compilador, podr producir
programas tan eficaces como los codificados en ensamblador.
Turbo C es el compilador ms rpido disponible, este realiza manipulaciones especiales
llamadas optimizaciones al cdigo que genera. La optimizacin de cdigo est todava en el mundo
de la magia. Borland consigue algunas optimizaciones geniales.
Turbo C es similar a Turbo Pascal. Aunque algunos de sus nombres son iguales, las
sentencias y condiciones son virtualmente las mismas, pero las de Turbo C son ms flexibles,
eficaces y potentes.
Algo malo de Turbo C es la no comprobacin automtica de tipos de datos. Este
compilador sigue la regla: el programador es el rey: Turbo C har lo que le diga que haga incluso lo
que no puede funcionar, ejemplo: puede llamar a una funcin que tomara argumentos enteros
como argumentos en punto flotantes, provocando mal funcionamiento, pero no dar aviso
GABRIEL GONZALEZ;GIANLUCA SALAMIDA;FLORENCIA
MOLLA;BENJAMN CUB
67
UTN FRC
TurboC es sensible al tamao. Esto significa que tratar a las letras maysculas como
caracteres separados. Por ejemplo los nombres de las variables contador, CONTADOR y Contador
representaran tres formas diferentes de la misma variable.
Todos los programas de Turbo C tienen una funcin main(), que marca el punto en el que
comienza la ejecucin del programa. Un programa debe declarar todas las variables antes de
usarlas
Descripcin
Pequeito (Tiny)
Pequeo (Small)
Medio (Medium)
Compacto
(Compact)
Grande (Large)
68
UTN FRC
Enorme (Huge)
Generalmente el modelo pequeo por defecto del Turbo C es suficiente para la mayora de
las tareas de programacin.
El programa TCINST
Turbo C puede controlar muchas opciones que afectan a la forma de compilar y enlazar los
programas.
Turbo C incluye la opcin Tcinst, que se usa para establecer diversos atributos y
especificaciones por defecto del entorno integrado de Turbo C
Cuando comienza la ejecucin del programa, se ver un men que contiene los siguientes
elementos:
o
o
o
o
o
Compile: Seleccionar La Opcin Compile, Nos Permite Definir Un Archivo Primario Por
Defecto.
Project: En La Opcin Project Se Puede Definir Un Nombre De Proyecto. Tambin Permite
Establecer El Estado De Las Caractersticas Relacionadas Con El Proyecto Por Defecto.
Options: La Seleccin De Options Permite Establecer Los Diferentes Parmetros De
Entorno, Enlazador Y Compilador.
Debug: La Opcin Debug Permite Determinar Cmo Funciona El Depurador Incorporado.
Permite visualizar los mensajes de error de compilacin y enlace.
Optimizacin: es la bsqueda y el hecho de mejorar el rendimiento del programa a partir
de determinados cambios lgicos. Algunas optimizaciones que hacen el cdigo ms
pequeo tambin lo hacen ms lento, otras hacen el cdigo ms rpido pero ms grande.
Por lo tanto, Turbo C permite decidir que consideraciones, velocidad o tamao, es ms
importante a travs de la opcin optimize for. Por defecto es tamao.
69
UTN FRC
o
o
Una nueva sintaxis para declarar funciones. Una declaracin de funcin puede aadir una
descripcin de los argumentos de la funcin. Esta informacin adicional sirve para que los
compiladores detecten ms fcilmente los errores causados por argumentos que no coinciden.
Procesador ms sofisticado.
Una nueva definicin de la biblioteca que acompaa a C. Entre otras funciones se incluyen:
acceso al sistema operativo (por ejemplo, lectura y escrituras de archivos), entrada y salida
con formato, asignacin dinmica de memoria, manejo de cadenas de caracteres.
Una coleccin de cabeceras estndar que proporciona acceso uniforme a las declaraciones de
funciones y tipos de datos.
70
UTN FRC
Conclusin
Como se nombr anteriormente a la hora de elegir entre un compilador C u otro es
necesario tener en cuenta ciertos factores, como por ejemplo:
o
o
o
o
o
o
o
Compatibilidad de plataformas
Dispositivos para los que el compilador es capaz de generar cdigo.
Depuracin
Optimizacin del cdigo generado.
Biblioteca de funciones pre compiladas para ahorrar trabajo al programador.
Precio
Complejidad a la hora de utilizarlo
71
UTN FRC
Si bien los siete compiladores presentados se destacan por su optimizacin del cdigo,
MPLAB-C18 y MPLAB-C32 son lo que producen un cdigo ms optimizado ya que aprovechan de
la mejor manera los recursos Hardware.
Sin embargo el CC5X tambin se destaca entre estos siete, esto se debe a que en
comparacin con los otros compiladores de C, los ahorros de cdigo son de 20 % a 30 %;
generando as un cdigo compacto y optimizado lo que, adems, facilita el eficiente uso de
memoria RAM. Las libreras son todo el conjunto de funciones, macros y constantes que el
lenguaje tiene para que puedas escribir programas, facilitndole as al programador la escritura de
los mismos.
En este aspecto, todos los compiladores van a la par y tienen diversidad muy amplia, a
excepcin del SDCC ya que es un proyecto que sigue avanzando y muchas de estas libreras estn
todava en desarrollo. Sin embargo lo que no tiene se puede crear, ya que te permite crear nuevas
libreras.
Lo que nos lleva a tratar con la complejidad a la hora de utilizar cada compilador que, si
bien depende de la capacidad de cada uno para adaptarse a este lenguaje, las herramientas de
apoyo que te brinda cada compilador para facilitar este aprendizaje es un determinante para
tomar la decisin de cual utilizar. Esto se debe a que al ser ms demandados generan una oferta y
demanda, acompaado de compaas que buscan abastecer esa demanda, buscando la forma de
facilitarle el aprendizaje a quien se encuentra interesado en programar con un compilador C.
Teniendo en cuenta que los compiladores que se encuentran bajo una demanda mayor, son los
que pueden ser utilizados en un abanico ms amplio de gamas de microcontroladores, los
compiladores destacados, en este aspecto, son TurboC y MikroC.
Por ltimo, las ltimas caractersticas para tener en cuenta a la hora de elegir que
compilador C va a ser mejor para uno a la hora de involucrarse en la programacin de
microprocesadores PIC, son el precio y el fin que se le va a dar.
Si el objetivo de adquirir un compilador C es para un uso ms avanzado, teniendo en
cuenta que uno ya est involucrado en el tema y tiene el conocimiento para hacerlo, recurrir a un
compilador pago ser la mejor opcin, lo que nos lleva a la conclusin de que el Compilador CC5X
ser la mejor opcin a elegir por el soporte para un abanico de gamas amplio y por la relacin
calidad-precio del mismo.
Por otro lado, si uno busca empezar a involucrarse con uso de un compilador c para
emplearlo en microprocesadores PIC, que brinde las herramientas que le facilite el aprendizaje de
este lenguaje y que a la vez cumpla con el soporte para un abanico de gamas amplio. Teniendo en
cuenta que el precio de este compilador si ser un determinante, nos lleva a la conclusin de que
la mejor opcin ser TurboC ya que es una versin gratuita y es un compilador que se destaca en
los dems aspectos.
72
UTN FRC
Referencias
Compiladores : Principios, tcnicas y herramientas - Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey
D. - Addison Wesley Iberoamericana
Compiladores: Conceptos Fundamentales - Teufel, Bernad ; Schmidt, Stephanie.; Teufel,
Thomas - Addison-Wesley Iberoamericana
Curso de programacin con Turbo C++ - Joyanes Aguilar, Luis Editorial McGraw-Hill
Programacin en Turbo C Herbert Schildt Editorial Borland
http://www.academia.edu/9409091/Qu%C3%A9_es_MPLAB_C18_C
http://www.aquihayapuntes.com/curso-pic32.html?start=1
http://www.microchip.com/forums/f3.aspx
http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/tutorial-mplab-c18desde-0/
http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=SW006011#dtDoc
umentation
http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/
http://www.todopic.com.ar/foros/index.php?topic=30016.0;wap2
http://tecbolivia.com/index.php/articulos-y-tutoriales-microcontroladores/59-tutorial-de-pic32
http://www.microchip.com/pagehandler/en-us/devtools/devtoolsmain/home.html
http://www.farnell.com/
http://www.mikroe.com/chapters/view/80/capitulo-2-programacion-de-losmicrocontroladores/
http://es.wikipedia.org/wiki/Turbo_C/
http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/manual-de-hi-techpic16/
http://es.wikipedia.org/wiki/Compilador/
http://www.zator.com/compiladoresC.htm
http://es.wikipedia.org/wiki/Ambiente_de_desarrollo_integrado/
http://www.bknd.com/cc5x/
http://www.iqrf.org/weben/downloads.php?id=88
http://www.ele.uva.es/~jesman/BigSeti/ftp/Cajon_Desastre/Instalacion/SETI_2/Compilador%20
CC5X%20C/
http://sdcc.sourceforge.net/
http://www.aquihayapuntes.com/sdcc-small-devicec-compiler-en-windows.html
http://www.cpcmania.com/Docs/Programming/Intr
oduccion_a_la_programacion_en_SDCC_Compiland
o_y_probando_un_Hola_mundo.htm
73