Autor Tema: LCD SOBRE PUERTO C, con 6 PINES  (Leído 8374 veces)

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

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
LCD SOBRE PUERTO C, con 6 PINES
« en: 27 de Mayo de 2008, 15:57:47 »
El caso es que quiero conectar sobre el puerto C un LCD, desde las patillas C0 a C6. googeleando un poco por internet he visto que hay una libreria flex_lcd.c que sirve para mi proposito.
He definido sobre los pines que va el LCD, dejando el de RW a masa. y comentandolo en la libreria el USE_LCD_RW

#define LCD_DB4 PIN_C2
#define LCD_DB5 PIN_C3
#define LCD_DB6 PIN_C4
#define LCD_DB7 PIN_C5

#define LCD_E PIN_C0
#define LCD_RS PIN_C1

//#define LCD_RW PIN_A2//No usado

// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.

//#define USE_LCD_RW 1

--- EN el main.c
#include "flex_lcd.c"

void main(void)
{
    printf("Inicializando..");
         lcd_init();
    do{   
      lcd_putc("h");
     delay_ms(1000);
    }while(TRUE==TRUE);//bucle infinito
 }


Una manita, para un pobre diablo. plis
Salu2 y Gracias
« Última modificación: 27 de Mayo de 2008, 17:22:53 por Tholkiem »

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #1 en: 27 de Mayo de 2008, 17:19:28 »
Por si puede dar alguna pista más , si pruebo ha hacer  en el bucle del main:

    do{   
         lcd_putc("\f\fhola");
         delay_ms(1000);
         lcd_putc("h");
         delay_ms(1000);
    }while(TRUE==TRUE);//bucle infinito

Se ve como se enciende el lcd, cuando esta ejecutando lcd_putc("h");
He revisado las conexiones y son las correctas.

Desconectado pablo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 253
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #2 en: 27 de Mayo de 2008, 21:41:16 »
Proba con


while(true) {
    printf(lcd_putc,"\fHola");
}

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #3 en: 27 de Mayo de 2008, 21:57:54 »
No puedes definir los pines de forma externa en la librería flex_lcd. Prueba a modificarlos dentro de la librería.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #4 en: 28 de Mayo de 2008, 06:51:18 »
Gracias por vuestras respuestas.

Pablo he probado con prinft(lcd_putc,"/fhola");   y no ha funcionado. compila ok, pero no hace nada el LCD.
Sobre la respuesta de  jfh900 los defines los realizo dentro de la libreria.

Salu2.

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #5 en: 28 de Mayo de 2008, 15:23:19 »
He probado con el codigo de la pagina de RedPic:
http://picmania.garcia-cuervo.com/PICC.htm#FLEXLCD
Adaptando unicamente los pines.

#define LCD_DB4 PIN_C2
#define LCD_DB5 PIN_C3
#define LCD_DB6 PIN_C4
#define LCD_DB7 PIN_C5

#define LCD_RS PIN_C0
//#define LCD_RW PIN_C1
#define LCD_E PIN_C1

El lcd se trata de un powertip pc1602F . Pero el pinout es similar a los que he visto por internet.El datasheet del aparato en cuestion es:
http://www.datasheetarchive.com/pdf/2700717.pdf


Dejo un par de fotos de los caracteres que muestra al arrancar, y los que muestra cuando se hace cualquier lcd_putc
Ya no se que probar...
Alguna idea¿?





Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #6 en: 28 de Mayo de 2008, 15:53:59 »
Sobre la respuesta de  jfh900 los defines los realizo dentro de la libreria.

#define LCD_DB4 PIN_C2
#define LCD_DB5 PIN_C3
#define LCD_DB6 PIN_C4
#define LCD_DB7 PIN_C5

#define LCD_E PIN_C0
#define LCD_RS PIN_C1

//#define LCD_RW PIN_A2//No usado

// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.

//#define USE_LCD_RW 1

--- EN el main.c
#include "flex_lcd.c"

void main(void)
{

Me parece que según el código que pusiste las modificaciones o los "define" estan fuera de la librería o yo no tengo ni idea de "C".

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #7 en: 28 de Mayo de 2008, 15:57:13 »
Sorry, igual no me explique bien ..
En el codigo puse:

--- EN el main.c <-- aqui queria decir que apartir de ahi era el fichero del main.
#include "flex_lcd.c"

void main(void)
{

Pero vamos que ni dentro ni fuera, no carbura la cosa ...
Ya no se si tirarme al tren.. o al maquinista jejeje

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #8 en: 28 de Mayo de 2008, 16:12:55 »
Haber si me explico mejor. Si creas un define fuera de la librería con el fin de modificar el valor, esto no funcionará, tienes que modificar directamente el define contenido dentro de la librería.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #9 en: 28 de Mayo de 2008, 16:25:19 »
Me ha quedado claro como el agua..
Pero al menos en el ANSI C convencional si declaras un define  y posteriormente lo usas en una cabecera (*.h) si que rula.
De echo RedPic en su ejemplo del display asi lo hace. http://picmania.garcia-cuervo.com/PICC.htm#FLEXLCD

Pero para salvarme las espaldas lo hice como tu me comentas. Pero el resultado sigue siendo el mismo. :(
EL pin 3 que es el de contraste hay q conectarlo a masa con una resitencia de 10k. ¿?
Perdona por darte tanto la chapa jfh900.

Salu2

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #10 en: 28 de Mayo de 2008, 16:48:00 »
No te preocupes por preguntar para eso estamos. Respecto a la patilla de contraste, debes de poner un potenciometro para poder regularlo, ya que este contraste o brillo se regula variando la tensión aplicada a dicha patilla. Si no polarizamos la patilla no saldrá nada en el LCD.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #11 en: 28 de Mayo de 2008, 16:58:39 »
Pues va a ser eso lo que me esta dando tanto quebradero de cabeza.
Porque estoy probando con resistencias normales. pero no tendria el mismo efecto¿?

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #12 en: 28 de Mayo de 2008, 17:25:07 »
No. Si pones la patilla a masa con una resistencia, la tensión de la patilla será cero voltios y si la conectas a 5 V prácticamente tendrás los 5 V. Por eso necesitas un potenciometro para poder regular la tensión y ajustarlo a su contraste exacto.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #13 en: 28 de Mayo de 2008, 17:54:36 »
Pero si esa patilla solo ajusta el contraste, a mis los 'cuadros' se me ven bien. de echo puedes fijarte en las fotos que he adjuntado.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #14 en: 28 de Mayo de 2008, 18:19:40 »
No veo la foto.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús