Autor Tema: Erro en LCD cadena de caracteres  (Leído 1663 veces)

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

Desconectado freshdesing

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 88
Erro en LCD cadena de caracteres
« en: 18 de Noviembre de 2009, 13:25:28 »
Hola, a ver si alguien podría echarme una mano:
Cuando intento sacar por el LCD los sigueintes mensajes... no me aparecen bien los datos, se mueven a la izquierda y no salen completos. Si solo pongo un solo canal sale perfecto, pero al poner le segundo canal se estropea todo....

Código: C
  1. void main(void)
  2.         {
  3.         unsigned int canal_0, canal_1;
  4.         char string0[4],string1[4];
  5.         TRISA=0xFF;
  6.         XLCDInit();
  7.        
  8.         OpenADC(ADC_FOSC_RC & ADC_RIGHT_JUST & ADC_4_TAD,
  9.                          ADC_CH0 & ADC_INT_OFF & ADC_VREFPLUS_VDD & ADC_VREFMINUS_VSS,
  10.                         13); //Con este numero configuramos los pueros A/D  ADCON1
  11.         while(1){
  12.        
  13.        
  14.         SetChanADC(ADC_CH0);                    // Selecciono canal a convertir.-
  15.         Delay10TCYx(4); // 20us para que se cargue el capacitor sample&hold.-
  16.         ConvertADC();                   // Comienza conversión.-
  17.         while(BusyADC()==1){}   // Hasta que se finalice conversión.-
  18.         canal_0= ReadADC();     // Realizo lectura.-
  19.  
  20.        
  21.         SetChanADC(ADC_CH1);                    // Selecciono canal a convertir.-
  22.         Delay10TCYx(4); // 20us para que se cargue el capacitor sample&hold.-
  23.         ConvertADC();                   // Comienza conversión.-
  24.         while(BusyADC()==1){}   // Hasta que se finalice conversión.-
  25.         canal_1= ReadADC();     // Realizo lectura.-
  26.        
  27.         itoa(canal_0,string0);
  28.        
  29.         XLCDClear();
  30.        
  31.         XLCDPutRomString("Canal 0=");
  32.         XLCDPutRamString(string0);
  33.         XLCDL2home();
  34.         XLCDPutRomString("Canal 1=");          
  35.         XLCDPutRamString(string0);
  36.          
  37.         Delay10KTCYx(1000);
  38.        
  39.        
  40.         }
  41. }

Uso la libreria maestra de Microchip para el LCD.

Gracias.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Erro en LCD cadena de caracteres
« Respuesta #1 en: 18 de Noviembre de 2009, 20:39:40 »
no has intentado hacer un posicionamiento en la lcd o limpiarla cuando imprimes el nuevo valor?

Desconectado freshdesing

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 88
Re: Erro en LCD cadena de caracteres
« Respuesta #2 en: 19 de Noviembre de 2009, 11:31:10 »
Si, pero nada... al poner esto:
Código: C
  1. putrsXLCD("Canal 0 = ");
  2. itoa(Canal0, String); // Convertimos entero a string.-
  3. gotoxyXLCD(1,2);
  4. putsXLCD(String);

Me escribe el String en la primera línea. Si no pongo putsXLCD(String) no hay problema y me deja escribir el texto: putrsXLCD("Canal 0 = ") sin problemas.



 

anything