Autor Tema: como poner el valor de una variable en lcd  (Leído 4335 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado charlosh

  • PIC10
  • *
  • Mensajes: 12
como poner el valor de una variable en lcd
« en: 06 de Marzo de 2010, 14:52:12 »


BUENOS DIAS ESTOY USANDO EL PCWHD 4.068 YEL PROTEUS 7.6 YTENGO EL SIGUIENTE PROBLEMA, TRATO DE MANDAR EL VALOR DE UNA VARIABLE DE  TEXTO A UN LCD, PERO NO HE PODIDO VISUALIZAR LOS DIFERENTES STRINGS AL SIMULARLO EN EL PROTEUS , DE HECHO ME HE BASADO EN UN POST QUE ENCONTRE DE JUANELETE (23/OCT/03) ACERCA DE COMO MANDAR VARIABLES DE TEXTO AL LCD PERO NO HE PODIDO QUE ME FUNCIONE, SI ALGUIEN TIENE ALGUN EJEMPLO POR FAVOR SUBANLO PARA REVISARLO,   
TRANSCRIBO LA RESPUESTA QUE EN SU MOMENTO ENVIO JUANELETE A OTRO USUARIO PARA RESOLVER ESTE PROBLEMA PERO A MI NO ME FUNCIONA:




JUANELETE RESPONDE:
RE: Pregunta de interrupciones y cadena de caracteres


Hola

En C no existe el tipo de variable "string" como tal, sino que las cadenas se manejan como matrices de caracteres (char).

Para declarar este tipo de variables tienes que asignarles obligatoriamente un tamaño, que ademas tiene que ser 1 mas del tamaño maximo del texto. Esto es asi porque todas las cadenas tienen que terminar con el caracter '\0', que es el terminador nulo.

por ejemplo:

char texto[10]={"Hola"};

las 10 posiciones de memoria se verian asi: 'H', 'o', 'l', 'a', '\0',x,x,x,x,x.

El motivo de este terminador nulo es bien sencillo, puesto que la cadena de caracteres que introducimos en la variable pude tener cualquier longitud (hasta el maximo declarado - 1), es la manera de saber donde termina realmente esta cadena. Osea en una intruccion printf por ejemplo, se imprimiran uno a uno todos los caracteres hasta llegar al caracter '\0'.

Como no existe el tipo "string" tampoco se puede hacer esto:

texto = "Opcion 1";

En C existen una serie de funciones ( strcpy, strcat, strcmp...etc) que sirven para operar con cadenas. Lo correcto seria:

strcpy(texto, "Opcion 1") ;

Esta funcion cargara en la variable una cadena ( o el contenido de otra variable)

Tu ejemplo quedaria asi:

char texto[10];

void mostrar_valores(void) {
lcd_putc(texto);
}


void main (void) {
if (input(PIN_B1)) strcpy(texto, "Opcion 1");
if (input(PIN_B2)) strcpy(texto, "Opcion 2");
}



Saludos ;-)



AHORA BIEN MI PROBLEMA ES QUE YO HE SEGUIDO ESTAS INSTRUCCIONES, PERO CUANDO MANDO LA VARIABLE AL LCD NO ME DESPLIEGA VALORES, HE CHECADO QUE MI CODIGO NO TENGA OTRO ERROR (YA QUE SI YO LE PONGO QUE ME IMPRIMA EL VALOR DE "TEXTO" ENTRE COMILLAS SI ME PONE LA PALABRA TEXTO), PERO SI YO LE QUITO LAS COMILLAS A "TEXTO" NO ME ESCRIBE NADA ESPERANDO YO QUE ME ESCRIBA EL  VALOR DE LA VARIABLE QUE TENGA EN ESE MOMENTO MAS NO SE VISUALIZA NADA.  EN EL PROTEUS USANDO  WATCH WINDOWS YO ADICIONA LA VARIABLE TEXTO AHI SI SE VISUALIZA EL VALOR CAMBIANTE DE LA VARIABLE TEXTO PERO EN EL LCD NO.

¿ACASO ME FALTA DECLARAR ALGUN TIPO DE VARIABLE ESPECIAL?

PODRIAN AYUDARME A PODER VISUALIZAR LOS VALORES DE LAS VARIABLES EN UNA LOGICA PARECIDA A LA UTILIZADA POR EL EJEMPLO DE JUANETE.


Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: como poner el valor de una variable en lcd
« Respuesta #1 en: 06 de Marzo de 2010, 15:37:31 »
Evita usar mayúsculas por favor. Lee las reglas del foro ok?

Para enviar un dato a la LCD usa la función printf:

Código: C#
  1. printf(lcd_putc,"Variable: %u", Variable);

En la ayuda del CCS están todas las variables de salida (float: %f, entero: %u, long:%lu)... échale un ojo

Saludos
El papel lo aguanta todo