Joer (perdonarme la expresión) por fin ya funciona:
Veras cual es el problema:
Tu tienes una librería para manejar el lcd que se llama: lcd420.c. Esta librería está modificada para poder conectar los pines del lcd como queramos. Tú tienes la copia modificada posiblemente en tu directorio de trabajo, pero en el directorio de librerías de CCS tienes la librería original sin modificar. Si utilizas la librería original los pines son fijos:
// As defined in the following structure the pin connection is as follows:
// B0 enable
// B1 rs
// B2 rw
// B4 D4
// B5 D5
// B6 D6
// B7 D7
//
// LCD pins D0-D3 are not used and PIC B3 is not used.
Esto es el conexionado de los pines según la librería original.
¿Cual es el problema entonces?, muy sencillo: es algo que se suele pasar por alto al programar en C pero que es sumamente importante:
Cuando una libreria se refiere así: <libreria.c>
LA ESTAMOS BUSCANDO EN EL DIRECTORIO DE LIBRERIAS POR DEFECTO DEL COMPILADORCuando la referenciamos así: "libreria.c" La buscamos en el directorio de trabajo.
Como se ha solucionado: cambiando <lcd420> por "lcd420" con lo que ha cogido la librería correcta y funciona sin problemas.
Fíjate que cuando ponías las conexiones como decía la librería original funcionaba ya que estaba tomando esta librería, pero al cambiar cualquiera de los pines dejaba de funcionar por seguir tomando la misma librería.
Un saludo y perdón por el discurso.