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 |
Читать дальше