CCS - Variables

De Ucontrol
Saltar a: navegación, buscar

<keywords content="TTL 74Ls164N, electronica, circuito, pic, NE555, PIC BASIC, PIC SIMULATOR IDE, esquema, circuito impreso, proyecto, gratis, download, programa, CMOS, pin, e/s, i/o, ucontrol, PIC, 16F628a, 16f84a" /> <center>


Inicio Foro Revista uControl Circuiteca Microcontroladores Electrónica Básica Herramientas y Software Tutoriales Colaboradores Enlaces
¿Ya descargaste los ejemplares GRATUITOS de la Revista uControl? ¡No te los pierdas!.
<linkedimage>

wikipage=Dado electrónico con PIC tooltip=Dado electrónico con PIC img_src=Image:dado100.jpg img_width=150px img_alt=Dado electrónico con PIC </linkedimage>

Dado electrónico
<linkedimage>

wikipage=Como trucar un servo tooltip=Como trucar un servo img_src=Image:trucaservo150.jpg img_width=150px img_alt=Como trucar un servo </linkedimage>

¿Como trucar un servo?
<linkedimage>

wikipage=Comunicación inalámbrica entre PICs tooltip=Comunicación inalámbrica entre PICs img_src=Image:TXRX150.jpg img_width=150px img_alt=Comunicación inalámbrica entre PICs </linkedimage>

Comunicación inalámbrica
<linkedimage>

wikipage=CCS - Libreria de gráficos para GLCD K0108 tooltip=CCS - Libreria de gráficos para GLCD K0108 img_src=Image:GLCD-100.gif img_width=150px img_alt=CCS - Libreria de gráficos para GLCD K0108 </linkedimage>

Gráficos con CCS
<linkedimage>

wikipage=Funcionamiento de una matriz de LEDs tooltip=Funcionamiento de una matriz de LEDs img_src=Image:GNUxx.jpg img_width=150px img_alt=Funcionamiento de una matriz de LEDs </linkedimage>

Carteles de LEDs
Foroizq.jpg
Todos los articulos y proyectos de uControl tienen su lugar en el foro. Si tienes dudas o comentarios, busca o crea el hilo correspondiente, y tendrás una rapida respuesta.
Foroder.jpg
CCS - Variables

Introducción

Programando en CCS.

La programación seria prácticamente imposible sin el uso de variables. Podemos hacernos una imagen mental de las variables consistente en una caja en la que podemos guardar algo. Esa caja es una de las muchas que disponemos, y tiene en su frente pegada una etiqueta con su nombre. Estas cajas tienen ciertas particularidades, que hace que solo se puedan guardar en ellas determinados tipos de objetos.

Contenido

En esta analogía, cada caja es una variable, su contenido es el valor que adopta, y la etiqueta es el nombre de la variable. Como su nombre lo indica, y como veremos mas adelante, el contenido de una variable puede ser modificado a lo largo del programa.

Tipos

El lenguaje C proporciona cinco tipos básico de datos, con cuatro modificadores posibles. Podemos utilizar variables de cualquiera de esos tipos. La tabla siguiente muestra los tipos disponibles:

Tipo Ancho (Bits) Rango
short 1 0 o 1
short int 1 0 o 1
int 8 0 a 255
char 8 0 a 255
unsigned 8 0 a 255
unsigned int 8 0 a 255
signed 8 -128 a 127
signed int 8 -128 a 127
long 16 0 a 65536
long int 16 0 a 65536
signed long 16 -32768 a 32767
float 32 3.4E-38 a 3.4E+38


Si miras con atención la tabla anterior, puedes ver que hay tipos que parecen estar repetidos. En realidad, ocurre que CCS permite una "forma corta" para escribir algunos de los tipos. Concretamente, podemos utilizar unsigned, short, o long en lugar de unsigned int, short int, o long int.

Declaración

Las variables deben ser declaradas antes de ser utilizadas en el programa. El proceso de declaración de variables le dice a CCS de que tipo son y como se llaman. Al igual las demas instrucciones CCS que veremos a lo largo de este tutorial, debe terminar con ;.

La forma en que se declara una variable es la siguiente:

tipo nombre_de_la_variable;

donde tipo es alguno de los enumerados en la tabla anterior. Veamos un ejemplo:

int temperatura;

Esa linea permite a nuestro programa emplear la variable temperatura, que sera capaz de albergar cualquier valor comprendido entre 0 y 255.



Asignación de valores

Asignar un valor a una variable es una tarea bien simple. Basta con hacer lo siguiente:

nombre_de_variable = valor;

donde nombre_de_variable es el nombre de la variable que contendra el valor. Al igual que todas las instrucciones de CCS, debe terminar con un ; (punto y coma).

Por ejemplo, supongamos que queremos asignar el valor "100" a la variable "count". Lo hacemos de la siguiente manera:

count = 100;

donde 100 es una constante.

Podemos asignar un valor a una variable en el momento en que la declaramos. lo siguientes son algunos ejemplos de esto:

int a = 0;

Hace que la variable a sea del tipo entero, y le asigna el valor 0.

signed long a = 125,  b, c = -10;

a,b y c son declaradas como long. a toma el valor de "125" y c "-10".

Si la variable es de tipo char, la constante que se le asigna debe estar entre tildes, como en el siguiente ejemplo:

char nombre = 'juan perez';

Por ultimo, tambien podemo asignar a una variable el contenido de otra. En el siguiente ejemplo, el valor de i sera igual a 10.

int i = 10;
int j;
j = 1;


Varibles Locales y Globales

Si una variable se declara dento de una funcion, será "visible" solo dentro de ésta:

funcion1 () {
  char letra;
  .
  .
  . 
  . }

En el ejemplo anterior, la variable tipo char llamada letra solo podra utilizarse dentro de la funcion funcion1(). Si intentamos utilizarla fuera de ella, el compilador nos dará un error.

Si declaramos una variable fuera de cualquier funcion, el alcance de esta sera global, lo que quiere decir que estará disponible en cualquier parte de nuestro programa. Vemos un ejemplo de este último caso.

char letra;
main() {
 .
 .
 .
 .}
funcion1() {
 .
 .
 .}

La variable tipo char llamada letra podrá utilizarse dentro de main() o de funcion1().



Conversiones entre tipos

CCS nos permite mezclar diferentes tipos de variables dentro de una misma expresión. Y existen un conjunto de reglas que nos permiten saber que de que tipo será el resultado de la misma.

Por ejemplo, el compilador convertirá automaticamente a int cualquier expresión que contenga variables char, short o int. Esta conversión solo tiene efecto mientras se realizan los cálculos. Las variables en sí mismas no cambian su tipo.

Las reglas de conversión de tipos hacen que el resultado de una operación sea siempre el mismo que el de la variable más larga que intervenga en ella.

Sin embargo, podemos forzar a que el resultado sea de un tipo en particular, de la siguiente forma:

(tipo) valor

donde tipo es el tipo al que queremos que pertenezca valor. El siguiente ejemplo nos aclarará todo esto:

int a = 250, b = 10;
long c;
c = a * b;

Tal como explicamos, c no contendrá el valor 2500 como podría paracer a simple vista, por que el tipo de c no se modica. CCS calcula a * b' y obtiene efectivamente el resultado 2500, pero c sólo contendrá los 8 bits menos significativos de ese resultado, es decir, el decimal 196.

Si hubiesemos hecho: int a = 250, b = 10;

long c;
c = (long) (a * b);

el valor almacenado en c hubiese sido efectivamente 2500.

Temas relacionados

Puedes encontrar el resto de los temas que componene este tutorial sobre CCS en esta categoría.

Hay toda una colección de ejemplos sobre este tema. Puedes consultarlos para reforzar lo aprendido aquí.


Autor

Ariel.jpg Datos del Autor
Nombre: Ariel Palazzesi
email: arielpalazzesi@gmail.com
Ver los artículos de este autor. Página con el perfil del autor.

</center>
Cclicence.png

Este contenido se rige por la licencia de Creative Commons "Licencia Creative Commons Atribución-No Comercial-Sin Obras Derivadas 3.0". Para más información, véase la licencia en su forma reducida y completa.

Herramientas personales