Autor Tema: Problemas al usar el LCD del Starter kit de Microchip con CCS.  (Leído 1573 veces)

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

Desconectado jerarca

  • PIC10
  • *
  • Mensajes: 5
Problemas al usar el LCD del Starter kit de Microchip con CCS.
« en: 29 de Marzo de 2010, 14:42:50 »
Tengo la placa de desarrollo starter kit que tiene los pines de control del LCD E y RS conectadas  a los pines del puerto E (E2 y E1 respectivamente ) y RW a masa. El bus de datos del lcd están al puerto D (D0-D7) el problema es el siguiente: tengo la biblioteca del LCD.c del CCs y no se como modifcarla para estos dos puertos. Las modificaciones que encuentro en este foro es pasar del puero B al puerto D  o viceversa, esto sería lo conveniente pero las conexiones de la placa no la puedo modificar. La pregunta sería como modifico los pines de control para un puerto con RW a masa y los de datos a otro puerto de acuerdo a mi placa de desarrollo.

Hice lo que está abajo en el archivo FLEX_LCD que me habían recomendado para modificar los puertos y que reemplazaría al LCD.C, pero me tira un error cuando uso el
lcd_init();

y luego en el lcd_putc que uso en el pintf de mi programa. Y me dice que no están definidas... Lo raro que en el LCD.C si me funcionan ambos usando el proteus y sus puertos por defecto(puerto D para el LCD).


Cosas que modifiqué en el FLEX_LCD:

#define LCD_DB4   PIN_D4
#define LCD_DB5   PIN_D5
#define LCD_DB6   PIN_D6
#define LCD_DB7   PIN_D7
//
#define LCD_RS    PIN_E1
//#define LCD_RW    PIN_E0
#define LCD_E     PIN_E2

// 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



 
Si alguien me puede dar una mano se lo voy a agradecer.
Saludos


Desconectado PICYO

  • PIC16
  • ***
  • Mensajes: 104
Re: Problemas al usar el LCD del Starter kit de Microchip con CCS.
« Respuesta #1 en: 30 de Marzo de 2010, 10:00:38 »
 estoy buscando aver si tengo el felx_lcd...peor no lo tengo. Podrias pasar el original, a ver como va ?
Porque a  pesar que cambies los pines, quizas haya que hacer mas cambios ( o seguro, claro) ya que otras funciones no "se enteran" de ese cambio.  A modo un poco de ayuda me estoy leyendo la LCD.c, y me esta dando que será algo asi, por ejemplo en este paso :
Código: C
  1. struct lcd_pin_map {                 // This structure is overlayed
  2.            BOOLEAN enable;           // on to an I/O port to gain
  3.            BOOLEAN rs;               // access to the LCD pins.
  4.            BOOLEAN rw;               // The bits are allocated from
  5.            BOOLEAN unused;           // low order up.  ENABLE will
  6.            int     data : 4;         // be pin B0.
  7.         } lcd;
  8.  
  9.  
  10. #if defined use_portb_lcd
  11.    #locate lcd = getenv("sfr:PORTB")    // This puts the entire structure over the port
  12.    #define set_tris_lcd(x) set_tris_b(x)
  13. #else
  14.    #locate lcd = getenv("sfr:PORTD")    // This puts the entire structure over the port
  15.    #define set_tris_lcd(x) set_tris_d(x)
  16. #endif
o B o D como dices, peor no E
Que LCD usas concretamente ? Asi podriamos ver su datasheet, ver que pic se usa en esa placa de starter kit


 

anything