Autor Tema: XLCD - PORTD - 18F4550  (Leído 12204 veces)

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

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
XLCD - PORTD - 18F4550
« en: 15 de Enero de 2011, 16:21:15 »
Hola a todos,

¿Alguien me sabría decir cómo usar la librería XLCD del C18 para con un display conectado en el PUERTO D del PIC18F4550?

Llevo todo el dia leyendo foros y buscando una solución a mi problema pero no he querido crear un nuevo post debido a que he visto que ya hay muchísima info sobre esto, sin embargo ya llevo varias horas probando mil códigos distintos y distintas soluciones y no consigo nada de nada...

En principio hay una zona de esta librería que parace indicar el puerto de conexión, donde yo he cambiado "B" por "D":

#define DATA_PORT           PORTD
#define TRIS_DATA_PORT  TRISD

#define RW_PIN    LATDbits.LATD6   
#define TRIS_RW  TRISDbits.TRISD6   
#define RS_PIN     LATDbits.LATD5
#define TRIS_RS   TRISDbits.TRISD5   
#define E_PIN       LATDbits.LATD4 
#define TRIS_E     TRISDbits.TRISD4   

Pero aunque cambiar esto siguen saliendo todos los datos por el puerto "B". Si alguien me puede ayudarme o indicarme un enlace a una posible solución estaría muy agradecido.

Gracias de antemano.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: XLCD - PORTD - 18F4550
« Respuesta #1 en: 15 de Enero de 2011, 17:20:14 »
No contesto mensajes privados, las consultas en el foro

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #2 en: 15 de Enero de 2011, 17:24:05 »
Hola Suky,

Ya me descargué este manual que colgaste y me pareció muy bueno, pero en la sección del LCD habla de cómo conectarlo al PORTB que es cómo viene por defecto en XLCD, pero no he visto nada para cambiarlo de puerto.

Gracias por la ayuda.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: XLCD - PORTD - 18F4550
« Respuesta #3 en: 15 de Enero de 2011, 17:35:42 »
Hola Suky,

Ya me descargué este manual que colgaste y me pareció muy bueno, pero en la sección del LCD habla de cómo conectarlo al PORTB que es cómo viene por defecto en XLCD, pero no he visto nada para cambiarlo de puerto.

Gracias por la ayuda.

No te lo cito por que sí  ;-) Página 58, Librerias/Modificar librerias


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #4 en: 15 de Enero de 2011, 19:39:07 »
Esa parte no la había visto! Voy a probarlo!

Mil gracias!!!!!!

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #5 en: 15 de Enero de 2011, 20:36:56 »
Hola Suky,

He copiado el mismo código que sale en el manual y he seguido todos los pasos al pie de la letra pero me aparecen los siguientes errores:

C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\PFC v1\xlcd.h:134:Warning [2058] call of function without prototype
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\PFC v1\xlcd.h:137:Warning [2058] call of function without prototype
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\PFC v1\xlcd.h:140:Warning [2058] call of function without prototype
C:\MCC18\src\pmc_common\XLCD\putrxlcd.
c:16:Error [1109] type mismatch in redeclaration of 'putrsXLCD'
Halting build on first failure as requested.

Entonces aquí he quitado de "Source Files" putrxlcd.c y me aparece este otro error:

C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\Test\main.c:18:Error [1504] redefinition of 'DelayPORXLCD'
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\Test\main.c:21:Error [1504] redefinition of 'DelayXLCD'
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\Test\main.c:25:Error [1504] redefinition of 'comandXLCD'
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\Test\main.c:30:Error [1504] redefinition of 'gotoxyXLCD'
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\Test\main.c:47:Warning [2058] call of function without prototype
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\Test\main.c:49:Warning [2058] call of function without prototype
Halting build on first failure as requested.

He vuelto a agregar putrxlcd.c donde estaba y me sale este último error de nuevo.

Ya no se por donde tirar...he realizado la configuración del programa como indica en el comienzo. El caso es que con el puerto B no tengo problema, pero claro...

Alguna idea?

Gracias por la ayuda.

Desconectado gary_servin

  • PIC12
  • **
  • Mensajes: 65
Re: XLCD - PORTD - 18F4550
« Respuesta #6 en: 15 de Enero de 2011, 21:14:45 »
Primero que nada, un consejo, trata de no guardar tus proyectos en una ubicacion cuya direccion sea tan larga, ya que si no estoy equivocado MPLAB solo acepta hasta 64 caracteres para la ubicación de los archivos.  y esto
Citar
C:\Documents and Settings\AndreW\Mis documentos\Projects\C18\PFC v1\xlcd.h
tiene mas de 64 caracteres.

Prueba con eso primero. Ademas, los warnings te explican muy bien cual puede ser el problema, busca en las lineas 134, 137 y 140 para ver cual es la función a la que aparentemente le falta el prototipo.

Saludos!

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #7 en: 15 de Enero de 2011, 21:48:10 »
Hola de nuevo,

Gracias por las respuestas. Efectivamente la ruta era demasiado larga y a parte he corregido otros errores...hasta ahora que ya no tengo warnings pero sí un error que no sé qué quiere decir porque además hace referencia a un archivo que no he tocado, dice lo siguiente:

C:\MCC18\src\pmc_common\XLCD\putrxlcd.c:16:Error [1109] type mismatch in redeclaration of 'putrsXLCD'

¿......?

Desconectado gary_servin

  • PIC12
  • **
  • Mensajes: 65
Re: XLCD - PORTD - 18F4550
« Respuesta #8 en: 15 de Enero de 2011, 21:51:39 »
Que tienes en la linea 16 del archivo C:\MCC18\src\pmc_common\XLCD\putrxlcd.c?

Saludos!

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #9 en: 15 de Enero de 2011, 21:54:12 »
La librería donde me indica el error contiene el siguiente código:


#include <p18cxxx.h>
#include <xlcd.h>

/********************************************************************
*       Function Name:  putrsXLCD
*       Return Value:   void
*       Parameters:     buffer: pointer to string
*       Description:    This routine writes a string of bytes to the
*                       Hitachi HD44780 LCD controller. The user
*                       must check to see if the LCD controller is
*                       busy before calling this routine. The data
*                       is written to the character generator RAM or
*                       the display data RAM depending on what the
*                       previous SetxxRamAddr routine was called.
********************************************************************/
void putrsXLCD(const rom char *buffer)        <-------------------------------------------------------------------- LINEA 16
{
        while(*buffer)                  // Write data to LCD up to null
        {
                while(BusyXLCD());      // Wait while LCD is busy
                WriteDataXLCD(*buffer); // Write character to LCD
                buffer++;               // Increment buffer
        }
        return;
}


Ahí marqué la linea de interés.

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #10 en: 15 de Enero de 2011, 22:09:04 »
Bueno si me dan alguna nueva indicación la haré mañana porque ahora aquí en España son las 2:07 de la madrugada y llevo desde que me desperté delante del ordenador y lo veo ya todo borroso jeje.

Un saludo y gracias por la ayuda!

Desconectado gary_servin

  • PIC12
  • **
  • Mensajes: 65
Re: XLCD - PORTD - 18F4550
« Respuesta #11 en: 15 de Enero de 2011, 23:36:32 »
Busca en xlcd.h y ve si la función en cuestión esta definida de la misma forma!

Además de eso, ahora mismo no se me ocurre otra cosa!

Saludos!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: XLCD - PORTD - 18F4550
« Respuesta #12 en: 16 de Enero de 2011, 00:18:27 »
Ese problema aparece dependiendo de la versión de C18. Utiliza la ultima o saca ese archivo del proyecto.


Saludos
No contesto mensajes privados, las consultas en el foro

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #13 en: 16 de Enero de 2011, 07:41:51 »
Solucionado!

Mil gracias a todos.

Por cierto Suky muy buen manual.

Saludos!

Desconectado AV9

  • PIC10
  • *
  • Mensajes: 43
Re: XLCD - PORTD - 18F4550
« Respuesta #14 en: 16 de Enero de 2011, 08:21:14 »
Hola,

Me ha surgido una nueva duda. Siguiendo el Tutorial_C18, en la página 64 habla de cómo utilizar el Printf para escribir en LCD, muy útil para escribir variables que es mi intención. El caso es que he agregado y modificado el archivo "_user_putc.c" tal y como indica el manual pero el programa me da el siguiente error:

could not fin definition of symbol 'putcXLCD' in file 'Objects\_user_putc.o'.

Tuve que desagregar el archivo putcXLCD porque si no, no iba, y si lo agrego ahora me sale el mismo error de antes....



 

anything