Autor Tema: Programa con uso de lcd se queda colgado  (Leído 2298 veces)

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

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Programa con uso de lcd se queda colgado
« en: 19 de Febrero de 2009, 19:51:25 »
Hola compañeros, me estoy adentrando en el uso del lcd y como todos los comienzos surgen algunos problemillas.

A continuacion pongo el programa realizado, el uso de pina0 es a modo de indicador. Cuando comento (//) las lineas correspondientes al uso del lcd, el programa consigue hacer parpadear el led, pero si pongo esas lineas se queda colgado; ademas en la pantalla del lcd solo aparecen ?

Código: [Seleccionar]
#include <18F4550.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG,VREGEN,NOUSBDIV
#use delay(clock=4000000)
#include <lcd.c>

void main()
{
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
///PROGRAMA
   lcd_init();         //inicializa lcd
      while(1)
      {
      delay_ms(2000);
      printf(lcd_putc,"hola mundo ;)\soy manolito");   //muestra por pantalla el mensaje
      output_high(PIN_A0);//indicador programa funciona
      delay_ms(2000);
      printf(lcd_putc,"\f");   //limpia lcd
      output_low(PIN_A0);
      delay_ms(2000);
      printf(lcd_putc,"Soy una prueba");   //muestra por pantalla el mensaje
      }
}

La libreria que uso es la de CCs, asi que pongo aqui el codigo a ver si alguien me puede ayudar a ver que pasa. Gracias de antemano.
Saludos desde Córdoba, españa

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Programa con uso de lcd se queda colgado
« Respuesta #1 en: 27 de Febrero de 2009, 15:36:40 »
te falta configurar los pines I/O

con...
#use fast_io(a)


y dentro de void main()

set_tris_a (0x00);
en el caso que todo sean salidas...

si esta la resistencia pull-up del MCLR
mira tambien los fuses, si tienes que colocar el MCLR o NOMCLR

no se... por dar ideas...
a lo mejor lo mas esencial se nos olvida... y te aseguro que yo soy uno de esos jajajajaj

« Última modificación: 27 de Febrero de 2009, 15:46:53 por ppyote »
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Programa con uso de lcd se queda colgado
« Respuesta #2 en: 27 de Febrero de 2009, 16:25:32 »
Si esta parte de tu programa compila, salveme DIOS!!!

Citar
printf(lcd_putc,"hola mundo ;)\soy manolito");   //muestra por pantalla el mensaje

Tiene el : de terminacion antes del cierre del parentesis!!! :D :D

Seguro que compila sin errores??? :lol: :lol: :lol:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Programa con uso de lcd se queda colgado
« Respuesta #3 en: 27 de Febrero de 2009, 18:41:21 »
si que compilara bien ya que el cierre de la sentencia va despues de las dobles comillas y el parentesis...
o por lo menos eso creo.....
yo he echo la simulacion en proteus pero sustituyendo el pic y no me ha dado ningun error...
lo unico es que el mensaje sale mal....
al borrar pantalla  lcd_putc ("\f");
y no situar el puntero.... lcd_gotoxy(x,y);

rectifico..... depende del lcd sale bien o mal.. yo tenia un circuito con uno de 2x16 y no salia bien....
« Última modificación: 27 de Febrero de 2009, 19:40:40 por ppyote »
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Programa con uso de lcd se queda colgado
« Respuesta #4 en: 27 de Febrero de 2009, 23:25:05 »
Muchas gracias por las respuestas, mañana lo volvere a mirar y a montar.

Lo del ";" como dice ppyote, al estar en el string no da problemas.

Edito-> Ya consegui hacerlo funcionar, me faltaba tamnbien el lcd_gotoxy como señalaba ppyote, no tenia los pines del lcd no usados conectados a tierra no se si por esto me daba el fallo o por otra conexion, pero hoy al montarlo ha funcionado. Me he pasado al 18f2550, este es el codigo:

Código: [Seleccionar]
#include <18F2550.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOUSBDIV,VREGEN
#use delay(clock=4000000)

#define use_portb_lcd True//Para usar puerto B
#include <lcd.c>

void main()
{
   output_low(PIN_A0);//indicador programa funciona
   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_OFF);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   delay_ms(1000);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab
///PROGRAMA
   lcd_init();         //inicializa lcd
      while(1)
      {
      printf(lcd_putc,"Hola mundo\n");   //muestra por pantalla el mensaje
      output_high(PIN_A0);//indicador programa funciona
      delay_ms(1000);
      output_low(PIN_A0);//indicador programa funciona
      printf(lcd_putc,"Soy una prueba");   //muestra por pantalla el mensaje
      delay_ms(1000);
      lcd_putc('\f');   //borra lcd
      lcd_gotoxy(1,1);
      delay_ms(100);
      printf(lcd_putc,"Adios mundo\n");   //muestra por pantalla el mensaje
      output_high(PIN_A0);//indicador programa funciona
      delay_ms(1000);
      output_low(PIN_A0);//indicador programa funciona
      printf(lcd_putc,"Y segunda linea");   //muestra por pantalla el mensaje
      delay_ms(1000);
      lcd_putc('\f');   //Borra lcd
      lcd_gotoxy(1,1);
      delay_ms(100);
      }
}

Lo pongo por si a alguien le interesa o viene bien algun dia
« Última modificación: 28 de Febrero de 2009, 22:45:52 por kain589 »
Saludos desde Córdoba, españa

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Programa con uso de lcd se queda colgado
« Respuesta #5 en: 06 de Marzo de 2009, 21:55:59 »
revisa los fuses....
HS con 4 mhz?
mejor utiliza XT...
no crees?
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado kain589

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 324
Re: Programa con uso de lcd se queda colgado
« Respuesta #6 en: 06 de Marzo de 2009, 22:26:30 »
Pues no me dio ningun problema, como decia consegui hacerlo funcionar con ese codigo
Saludos desde Córdoba, españa

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Programa con uso de lcd se queda colgado
« Respuesta #7 en: 06 de Marzo de 2009, 22:35:31 »
ok... en verdad en ese ejemplo no es muy significativo pero en algun otro programa con una mayor importancia en cuanto a tiempos deberias de tenerlo en cuenta
a mi me ha pasado en varias ocasiones y casi todo por los fuses
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...


 

anything