| 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
CCS C acepta los siguientes tipos de datos:
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 |
80 UL |
| Signed INT16 |
80 L |
| Float |
3.14 F |
| 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 |
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) |
| + |
Suma |
| - |
Resta |
| * |
Multiplicatión |
| / |
División |
| % |
Módulo, resto de una división entera |
| -- |
Incremento |
| ++ |
Decremento |
| sizeof |
Determina el tamaño, en bytes, de un operando |
En las operaciones de decremento e incremento, en función de la posición del operador, se consigue un preincremento (++A) o un postincremento (A++).
| < |
Menor que |
| > |
Mayor que |
| >= |
Mayor o igual que |
| <= |
Menor igual que |
| == |
Igual |
| != |
Distinto |
| ?: |
Expresión condicional |
| ~ |
Complemento a 1 |
| & |
AND |
| ^ |
OR EXCLUSIVA |
| | |
OR |
| » |
Desplazamiento a derechas |
| « |
Desplazamiento a izquierdas |
Читать дальше