El CCS C es C estándar y, además de las directivas estándar (#include, etc.), suministra unas directivas específicas para PIC (#device, etc.); además incluye funciones específicas (bit_set(), etc.). Se suministra con un editor que permite controlar la sintaxis del programa.
NOTA |
En el manual de CCS se da mucha más información de la que a continuación se va a dar. En este capítulo sólo se describirán los elementos más básicos y esenciales para comenzar a programar. |
2.2 Estructura de un programa
Para escribir un programa en C con el CCS C se deben tener en cuenta una serie de elementos básicos de su estructura (figura 1).
•DIRECTIVAS DE PREPROCESADO: controlan la conversión del programa a código máquina por parte del compilador.
•PROGRAMAS o FUNCIONES: conjunto de instrucciones. Puede haber uno o varios; en cualquier caso siempre debe haber uno definido como principal mediante la inclusión de la llamada main().
•INSTRUCCIONES: indican como debe comportar el PIC en todo momento.
•COMENTARIOS: permiten describir lo que significa cada línea del programa.
Figura 1. Estructura básica de un programa
2.3 Tipos de datos
CCS C acepta los siguientes tipos de datos:
2.4 Las constantes
Las constantes se pueden especificar en decimal, octal, hexadecimal o en binario:
123 | Decimal |
0123 | Octal (0) |
0x123 | Hexadecimal (0x) |
0b010010 | Binario (0b) |
‘x’ | Carácter |
‘\010’ | Carácter octal |
‘\xA5’ | Carácter hexadecimal |
Además, se pueden definir constantes con un sufijo:
Int8 | 127U |
Long | 80UL |
Signed INT16 | 80L |
Float | 3.14F |
Char | Con comillas simples ‘C’ |
También se definen caracteres especiales, algunos como:
\n | Cambio de línea |
\r | Retorno de carro |
\t | Tabulatión |
\b | Backspace |
2.5 Variables
Las variable 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 manejará. Se definen de la siguiente forma:
TIPO NOMBRE_VARIABLE [=VALOR INICIAL]
TIPO hace referencia a cualquiera de los tipos de datos vistos en el punto 2.3. El NOMBRE_VARIABLE puede ser cualquiera y el valor inicial es opcional. Veamos un ejemplo:
Las variables definidas en un programa pueden ser de tipo LOCAL o GLOBAL. Las variables locales sólo se utilizan en la función donde se encuentran declaradas; las variables globales se pueden utilizar en todas las funciones del programa. Ambas deben declararse antes de ser utilizadas y las globales deben declararse antes de cualquier función y fuera de ellas. Las variable globales son puestas a cero cuando se inicia la función principal main().
Las variables pueden ser definidas con:
•AUTO: (usada por defecto, no hace falta que se indique) donde la variable existe mientras la función esta activa. Estas variables no se inicializan a cero. Su valor se pierde cuando se sale de la función.
•STATIC: Una variable local se activa como global, se inicializa a cero y mantiene su valor al entrar y salir de la función.
•EXTERN: Permite el uso de variables en compilaciones múltiples.
2.6 Operadores
2.6.1 Asignación
+= | Asignacion de suma (x+=y es lo mismo que x=x+y) |
- = | Asignacion de resta (x-=y es lo mismo que x=x-y) |
*= | Asignacion de multiplication (x*=y es lo mismo que x=x*y) |
/= | Asignacion de division (x/=y es lo mismo que x=x/y) |
%= | Asignacion del resto de la division (x%=y es lo mismo que x=x%y) |
«= | Asignacion de desplazamiento a la izquierda (x«=y es igual que x=x«y) |
»= | Asignacion de desplazamiento a derecha (x»=y es igual que x=x»y) |
&= | Asignacion AND de bits (x&=y es lo mismo que x=x&y) |
| = | Asignacion OR de bits (x | =y es lo mismo que x=x | y) |
^= | Asignacion OR EXCLUSIVA de bits (x^A=y es lo mismo que x=x^y) |
2.6.2 Aritméticos
+ | Suma |
- | Resta |
* | Multiplicatión |
/ | División |
% | Módulo, resto de una división entera |
-- | Incremento |
++ | Decremento |
sizeof | Determina
|