Compilador C CCS y Simulador Proteus para Microcontroladores PIC. Eduardo García Breijo. Читать онлайн. Newlib. NEWLIB.NET

Автор: Eduardo García Breijo
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9788426718648
Скачать книгу
Los programas son editados y compilados a instrucciones máquina en el entorno de trabajo del PC, el código máquina puede ser cargado del PC al sistema PIC mediante el ICD2 (o mediante cualquier programador) y puede ser depurado (puntos de ruptura, paso a paso, etc.) desde el entorno de trabajo del PC.

      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.

      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.

Images

       Figura 1. Estructura básica de un programa

      CCS C acepta los siguientes tipos de datos:

Images Images

      Las constantes se pueden especificar en decimal, octal, hexadecimal o en binario:

123Decimal
0123Octal (0)
0x123Hexadecimal (0x)
0b010010Binario (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

      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:

Images

      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().

Images

      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.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
sizeofDetermina

e-mail: [email protected]