Translate

lunes, 15 de diciembre de 2008

Sintaxis del Programa Parte II

Las Variables.

Existen diferentes tipos de Variables en C18, aunque la mayoría convive con las de ANSI C así que si estamos familiarizados con estas variables será más sencillo trabajar con C18. La siguiente tabla resume las variables que existen en C18:

Es importante saber que tipo de variable usaremos para consumir menos memoria del PIC. Entonces para declara una variable que solo toma valores entre 0 y 255 tendremos que declararla de la siguiente forma:

  unsigned char i;

Por ser equivalente en la mayoría al ANSI C, al declarar variables podemos hacer lo en una sola linea, incluso definiendo su valor inicial de algunas por ejemplo:

 unsigned char i, j , k=10;

Constantes.

Las constantes pueden ser definidas como globales o locales y se definen mediante el uso de la palabra reservada const precediendo al nombre de la variable, por ejemplo:

 const k=50;

Los valores de las variables y las constantes pueden ser definidos en los 3 sistemas numéricos que mencionamos anteriormente, decimal, binario y hexadecimal; para el sistema hexadecimal se debe usar el prefijo 0x  y para el sistema binario el prefijo 0b. Por lo que para declarar variables o constantes en C18 podemos hacerlo de la siguiente manera:

    unsigned char i;

           i = 0;

                   ......

           i = 0xFF

                  .......

          i = 0b00001010;

 

Arreglos de Variable.

Los arreglos sirven para crear vectores o matrices dentro de una variable, es decir, asignar índices individuales y cada uno de ellos puede tomar diferentes valores. Por ejemplo:

  unsigned char vec[4];

Creara una variable llamada vec  la cual contendrá cuatro índices de tamaño char dentro de ella, es decir podemos acceder a los índices de vec de la siguiente forma:

 vec[0]=1;

 vec[1]=0; 

 vec[2]=0;

 vec[3]=5;

O podemos definir los valores desde la declaración:

  unsigned char vec[4]={1,0,0,5};

Modificadores de las Variables.

Los modificadores son palabras que preceden la declaración de nuestras variables y sirven para especificar al compilador que tipo de flujo pueden llevar estas variables.

 Modificador Enum

Sirve para enumerar un arreglo de variable, por ejemplo:

 enum dweek{lun, mar, mier,jue,vie, sab,dom}

La variable los valores dentro de dweek toman un índice para este caso lun=0 mar=1 ... dom=6. También se pueden modificar los índices que tomaran por ejemplo:

 enum dweek{lun, mar, mier,jue=7,vie, sab,dom}

Para el ejemplo anterior lun=0, mar=1 mier=2, jue=7 vie=8 sab=9 dom=10

 Modificador Static

El modificador static  es usado para variables locales generalmente de funciones, y sirve para preservar el valor de la variable aun cunado hayan existido llamadas sucesivas a la función. Por ejemplo:

 static unsigned char  k;

 Modificador Extern

Cuando hacemos uso de la palabra reservada extern el compilador toma a estas variables como externas, es decir que pueden haber sido declaradas en cualquier parte del código de un modulo externo al código local. 

 extern data;

Con la sentencia anterior decimos que extern no esta definida en nuestro programa.

 Modificador Volatile

El uso del modificador Volatile es muy comun en rutinas ISR, ya que independientemente del flujo de programa la variable puede cambiar su valor repentinamente. En la siguiente sentecnia la variable IO es declarada como volatil.

 volatile char IO;

1 comentario: