Si se ejecuta la siguiente expresión se consigue un BUCLE SIN FIN:
Ejemplo:
2.8.4 WHILE / DO-WHILE
WHILE se utiliza para repetir sentencias.
La expresión se evalúa y la sentencia se ejecuta mientras la expresión es verdadera, cuando es falsa se sale del WHILE.
DO-WHILE se diferencia del WHILE y del FOR en la condición de finalización, la cual se evalúa al final del bucle, por lo que las sentencias se ejecutan al menos una vez.
Si se ejecutan las siguientes expresiones se consigue un BUCLE SIN FIN:
Ejemplos:
2.8.5 Otros
•Return: se emplea para devolver datos en las funciones.
•Break: permite salir de un bucle, se utiliza para While, For ,Do y Switch.
•Goto: provoca un salto incondicional.
2.9 Comentarios
Los comentarios en el programa facilitan la compresión de las distintas expresiones tanto para el programador como para quién tiene que interpretar dicho programa. No afectan a la compilación por lo que pueden ser tan extensos como el programador quiera. Se pueden colocar en cualquier parte del programa y con dos formatos:
•Utilizando //. Al colocar estos signos se comienza el comentario y finaliza en el final de la línea.
•Utilizando /* y */. Se debe utilizar al inicio y al final de comentario, pero no pueden repetirse dentro del mismo comentario.
2.10 Directivas y funciones (Preprocessor commands y built-in functions)
2.10.1 Directivas
Las directivas de pre-procesado comienzan con el símbolo # y continúan con un comando específico. La sintaxis depende del comando. Algunos comandos no permiten otros elementos sintácticos en la misma expresión. Muchas de las directivas utilizadas por CCS son extensiones del C estándar.
A lo largo del presente libro se irán viendo varias directivas en su ámbito de aplicación particular.
Como ejemplo se pueden comentar:
#DEVICE chip, permite definir el PIC con el que se realizará la compilación.
#FUSES options, la cual permite definir la palabra de configuración para programar un PIC. Por ejemplo, en el PIC16F84 las opciones posibles son:
LP, XT, HS, RC, NOWDT, WDT, NOPUT, PUT, PROTECT, NOPROTECT.
#INCLUDE “filename”, permite incluir fichero en el programa.
#USE DELAY (CLOCK=SPEED), permite definir las frecuencia del oscilador del PIC, el compilador lo utiliza para realizar cálculos de tiempo. Se puede utilizar M, MHZ, K y KHZ para definir la frecuencia.
#ASM y #ENDASM, permiten utilizar código ensamblador en el programa en C. Se utilizan al inicio y al final del bloque ensamblador.
2.10.2 Funciones
CCS suministra una serie de funciones predefinidas para acceder y utilizar el PIC y sus periféricos. Estas funciones facilitan la configuración del PIC sin entrar en el nivel de los registros especiales. Las funciones se clasifican por bloques funcionales.
En los distintos capítulos de este libro se irán estudiando algunas de estas funciones.
2.11 Librerías, drivers y ejemplos
CCS también suministra una serie de ficheros que facilitan su uso. Entre ello se encuentran librerías de estándar C, drivers de lcd gráficos, teclados, memorias serie, etc; además incluye un número importante de ejemplos.
2.12 Entorno de trabajo de CCS C Compiler
2.12.1 Introducción
CCS suministra tres compiladores básicos, el PCB, el PCM y el PCH; PCB se utiliza para PIC de 12 bits, el PCM para 14 bits y el PCH para 16 bits. Las limitaciones en la utilización de todos los elementos del CCS dependerán del PIC empleado.
Además, incluye los compiladores con Windows IDE (PCW y PCWH) que engloban a los compiladores anteriores. El PCW puede compilar con PCB y PCM y el PCWH con cualquiera de los tres.
Los ficheros de salida que maneja el compilador son de 8-bit hexadecimales, 16-bit hexadecimales y binarios. Los ficheros de depuración son compatibles con Microchip: ficheros COD, MAP y COF.
Los ficheros más habituales son:
•.C: son los ficheros fuente que contienen el código en lenguaje C.
•.H: