Autor Tema: Problemas con LCD y 18F458  (Leído 2366 veces)

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

Desconectado PabloFiscella

  • PIC16
  • ***
  • Mensajes: 154
Problemas con LCD y 18F458
« en: 18 de Junio de 2004, 09:00:00 »
Hola a todos:

Tenia un programa hecho con un pic 16F877 y ahora estoy usando un 18F458.
En programa no funciona ahora del todo bien.
Por ejemplo el display lo mustra desfasado un carater a la derecha y a veces faltan caracteres y cuando presiono un boton tambien en algunos casos ejecuta la funcion de otro.

Estoy usando ahora un cristal de 10MHz en el proteus y #fuses H4
Supongo que todos los problemas comenzaron con la velocidad nueva del cristal.

Espero puedan ayudarme, muchas gracias.
Pablo

Desconectado CH1T00

  • PIC10
  • *
  • Mensajes: 5
RE: Problemas con LCD y 18F458
« Respuesta #1 en: 08 de Junio de 2005, 05:55:00 »
hola:

 tienes que coger la libreria del lcd.c y renombrarla con otro nombre por ejemplo lcd1.c y esta es la que incluyes en el proyecto pero cambiando todo donde pone delay_cycles por delay_us. esto es debido a que no es lo mismo un ciclo a 4mhz que a 40mhz mientras que el daly_us si.Sonrisa

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Problemas con LCD y 18F458
« Respuesta #2 en: 08 de Junio de 2005, 11:48:00 »
Efectivamente esa es la solución, sin embargo en el Proteus esta configuración con el PLL sigue sin funcionar.

Desconectado nordestenica

  • PIC16
  • ***
  • Mensajes: 215
RE: Problemas con LCD y 18F458
« Respuesta #3 en: 09 de Junio de 2005, 10:03:00 »
loco jo cada dia que passa entiendo menos desto no deberia ser al contrario Sonrisa Gigante



hola: tienes que coger la libreria del lcd.c y renombrarla con otro nombre por ejemplo lcd1.c y esta es la que incluyes en el proyecto pero cambiando todo donde pone delay_cycles por delay_us. esto es debido a que no es lo mismo un ciclo a 4mhz que a 40mhz mientras que el daly_us si.



o sea que si tengo una lcd compatible com la HD44780 e quiero usar um 16f628A a trabajar con cristal de 4 MHZ solo tengo que cojer la LCD.C que viene en el CCS e cambiar todos delay_cycles por delay_us e ir ajustando este com la lcd que use
correcto ?

para usar la lcd en rb3-rw rs-rb2 enable-rb1
datos de rb4 a rb7
solo tendria que poner esto correcto ? lo demas no se toca nada solo se cambia los delay_cycles (1) ;    por delay_us(1); // aqui 1 ay que ir ajustandolo mediante la lcd que se use correcto ?

 

truct lcd_pin_map {                 // This structure is overlayed
           BOOLEAN unused;        // pin b0 no se usa
           BOOLEAN enable;               // pin b1 enable
           BOOLEAN rs               // pin b2 rs
           BOOLEAN rw           // pin b3 r/w
           int     data : 4;         // be pin B0.
       

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Problemas con LCD y 18F458
« Respuesta #4 en: 09 de Junio de 2005, 13:57:00 »
A 4Mhz no tienes que cambiar nada en el fichero original de CCS lcd.c

Los problemas vienen con los PIC18 a frecuencias de 20Mhz, 40Mhz ... entonces es cuando hay que hacer ese cambio en el fichero lcd.c  para usar la LCD

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: Problemas con LCD y 18F458
« Respuesta #5 en: 09 de Junio de 2005, 20:34:00 »
El problema comienza cuando utilizas la libreria tal cual esta con micros a velocidad de reloj muy superiores  a 4 mhz, para la cual fueron escritos.
Si buscas en los datasheets de los controladores de lcd estos necesitan pulsos de determinado ancho para trabajar correctamente.
Por eso lo que explica Pocher es correctisimo.Sonrisa GiganteSonrisa Gigante
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.