Autor Tema: necesito ayuda para mostrar mensajes en la LCD  (Leído 2115 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado dritus

  • PIC10
  • *
  • Mensajes: 3
necesito ayuda para mostrar mensajes en la LCD
« en: 06 de Marzo de 2004, 17:14:00 »
Hola,

Ya he recibido ayuda de Pocher, al cual estoy muy agradecido. Del programa rectificado que me mandaste, tube que hacer algún cambio, ya que no me mostraba nada por pantalla. Po ejemplo, lcd_init tube que ponerlo dentro de cada "case", ya que sino no me hacia caso.

Él programa ahora si que me muestra los mensajes tal y como yo quiero, lo que pasa es que se me queda enganchado. Cada vez que yo comienzo el programa, acciono una e las entradas y me muestra el mensaje y tras el tiempo estipulado me borra la pantalla, tal y como es mi intención. El problema es que cuando yo cambio la combinación de entrada, debería mostrarme el mensaje nuevo, y ya no me hace caso. Tengo que hacerle un reset al pic para que me muestre el siguiente mensaje. El programa es el siguiente:

#include <16f84.h>

#use delay(clock=4000000)

#include <lcd.c>

#use fast_io(A)
#use fast_io(B)
#byte port_a=5
#byte port_b=6

main()
{
set_tris_A(0xFF);
set_tris_B(0x00);
while(1)
{
switch (port_a)
{
case 0x00: lcd_init();
port_b=0x00;
break;
case 0x01: lcd_init();
lcd_putc("alarma";
lcd_gotoxy(2,2);
lcd_putc("activada";
delay_ms(1000);
port_b=0x01;
lcd_putc("f";
break;
case 0x02: lcd_init();
lcd_putc("alarma";
lcd_gotoxy(2,2);
lcd_putc("desactivada";
delay_ms(1000);
port_b=0x02;
lcd_putc("f";
break;
}
}
}

Necesito contestación urgente, tengo este fin de semana para terminar esto, meterlo en el pic, y terminar esta parte de mi proyecto, el cual he de presentar terminado y con su memoria correspondiente para el viernes.

Gracias a todos por anticipado, especialmente a "mi profe", Pocher. Un saludo.

adolfoadc

  • Visitante
RE: necesito ayuda para mostrar mensajes en la LCD
« Respuesta #1 en: 06 de Marzo de 2004, 17:59:00 »
Porque no cierras con parentesis despues de los printf?
si no los cierras te da un error en la compilacion

Vale ya se porque no los cierras, ese puñetero careto!!!!

Por otro lado cuando se llama a LCD los pines definidos para manejar el LCD se convierten en entradas y salidas, por eso solo te funciona la primera vez, las siguientes al llamar a las funciones del lcd estas variando la configuracion de los puertos y puede que te este dando problemas, porque no haces alguna comprobacion en este sentido. la libreria lcd.c afecta a los puertos I/O.
Suerte


Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: necesito ayuda para mostrar mensajes en la LCD
« Respuesta #2 en: 06 de Marzo de 2004, 18:17:00 »
Los problemas con los caretos al insertar código y también con las tabulaciones se pueden suprimir si lo hacen pulsando el botón de "insertar código" (la que tiene una #) que está junto a la de cambiar tamaño, color...
Pulsan el botón y luego aceptan sin escribir nada en el campo que aparece. Luego os aparecen dos "code" entre corchetes. En medio de los dos insertan el código.
Por ejemplo: [cod]Aquí pegan el código o también algún dibujito hecho con puntos, barras,... que quieran que los espacios dejados entre ellos permanezcan cuando envíen el mensaje [/cod]
Por cierto, pondrá code en lugar de cod, pero es que si lo dejaba bien entoces imaginen...
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: necesito ayuda para mostrar mensajes en la LCD
« Respuesta #3 en: 07 de Marzo de 2004, 04:06:00 »
Hola dritus.

El programa que te envié lo comprobé antes y funcionaba bien.

Ya me imagino lo que estará pasando, después de las temporizaciones haces port_b=0x01 y port_b=0x02, esto no se puede hacer ya que en esas posiciones tienes conectados los pines de control de la LCD. Pon esas dos salidas en el PORTA.

Recuerda que CCS en su rutina lcd.c define:

E = RB0
RS = RB1
RW = RB2

D0 = RB4
D1 = RB5
D2 = RB6
D3 = RB7

Un saludo

PD. Usa el programa que te envié ya que el lcd_init() solo debes definirlo una sola vez en el main.

Otra cosa que seguramente habrás hecho pero por si acaso: si usas el por_b debes habilitar la línea  #define use_portb_lcd true en la rutina lcd.c

adolfoadc

  • Visitante
RE: necesito ayuda para mostrar mensajes en la LCD
« Respuesta #4 en: 07 de Marzo de 2004, 04:11:00 »
Cuidadin con el RA4 que es una salida a colector abierto, la conexion de este tipo de salidas es distinta a una salida digital normal. Puedes usar tambien el pin RB3 que queda libre.

Suerte!!!!!!!!!!

Desconectado dritus

  • PIC10
  • *
  • Mensajes: 3
RE: necesito ayuda para mostrar mensajes en la LCD
« Respuesta #5 en: 07 de Marzo de 2004, 06:34:00 »
Muchas gracias a todos, me alegra saber que no estoy solo y que en esta web tengo mucha gente de la cual aprender en este tema, gracias compañeros.

Voy a probar lo que me decís, ya os diré como he terminado todo y lo colgaré para que todos lo tengan ademas de poner mis errores y soluciones.

Ahora me voy a trabajar, cuando lo tenga os digo algo.

Un saludo a todos, Adeu!!!!


Hola a todos, solo queria deciros que ya he conseguido el programa, que teniais razon en muchas de las cosas que me habeis dicho, muchas gracias.

En breve volveré por aquí y colgaré mi programa así como alguna cosita más. Ahora os dejo xq como ya sabeis, solo me quedan dos dias para terminar el prototipo y la memoria, antes del viernes que lo he de exponer. Sin vosotros esto habría sido imposible. Gracias!!!