Conflicto entre librerías

Hola me llamo Capi, os comento a ver si alguien me puede guiar... tengo un tft de 7" con un shield todo ello conectado a un mega, mi intención es hacer un "ordenador de abordo" para una máquina. Tengo todo diseñado, menú primcipal, submenús con istrucciones de puesta en marcha y luego otro submenú con parámetros de motor. Para ello utilizo la librería UTFT, URTOUCH y para el gauge de rpms la librería TFT_extensionV2. El problema viene al juntar todas las funciones que la libreria TFT_extensionV2 entra en conflicto, me da un error con la librería URTOUCH. Creo que busca la UTOUCH en lugar de la URTOCH.

Imagino que habrá que modificar algo en la librería, pero no me atrevo a tocar nada

Gracias
Un saludo

Bueno, llevo poco en arduino pero San Google siempre puede ayudar:

La primera librería que usas es URTouch y la segunda es FT_ExtensionV2 que sí, usaba la primera.

¿Y por qué destaco lo de USABA?
Bueno si miramos el #define de uno de los ejemplos vemos:

#include <UTFT.h>
#include <UTouch.h>
#include <TFT_ExtensionV2.h>

Ahora buscamos la Librería UTouch.h…
Y el creado de estas librerías NOS AVISA:

Ver enlace

Library: UTouch

The library you are trying to reach has been discontinued, but don’t worry. It has been replaced by URTouch.

Concluyo sin haber usado dichas librerias que debes cambiar la línea donde declaras UTouch y la sustituyas por URTouch. Si tienes dudas siempre puedes comentar las líneas que cambies. Pero basándome en eso es solo cambiar el #include.

Un saludo.

Arduinito, muchas gracias por tu respuesta.

Eso ya lo he comprobado varias veces tanto en mi sketch como en los ejemplo que trae la librería y excepto en uno o dos ejemplos, que si le elimino la función touch si que me carga y funciona (sin touch) en todo lo demás me sigue dando error.

Al hacer lo que me has indicado correctamente el error indica que no encuentra la librería UTOUCH. Por lo tanto sospecho que la librería TFT_expansionaV2 contiene algo relacionado con UTOUCH, que será lo que tengo que modificar para que me funcione con URTOUCH.

Pero como de la programación de las librería no entiendo lo más mínimo... prefiero no tocar algo que no deba y que me deje de funcionar todo!

Muchas gracias
Un saludo

Revisando la clase veo que viene preparada para el cambio.

#ifdef UTouch_h
#define TOUCH UTouch
#elif URTouch_h
#define TOUCH URTouch
#else
#define TOUCH ITDB02_Touch
#endif

Creo que sería más rápido si muestras el error que te da.

¿Tienes importada URTouch? ¿O sigues con UTouch?

En cualquier caso más que un conflicto entre librerías creo que es una mala definición de las librerías que se están usando.

Hola Arduinito, muchas gracias por tu ayuda, de verdad.
Este es el mensaje de error que sale en mi sketch:

Arduino:1.6.5 (Mac OS X), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Opciones de compilación cambiadas, reconstruyendo todo
In file included from sketch_jan29d.ino:8:0:
/Users/Documents/Arduino/libraries/TFT_ExtensionV2-master/TFT_ExtensionV2.h:121:16: error: #elif with no expression
 #elif URTouch_h
                ^
Error de compilación

no tengo ni idea de cómo solucionar esto para poder seguir adelante con el proyecto

un saludo

en lugar de

#elif URTouch_h

usa

#else
   #if URTouch_h

y terminas con

#endif

y eso dónde lo cambio? por que en el sketch no he escrito eso por ningún lado! :confused:

En la librería comenta lo que esta y modifica esto.

/Users/Documents/Arduino/libraries/TFT_ExtensionV2-master/TFT_ExtensionV2.h

Hola surbyte, muchas gracias por tu solución, el error de URTouch se me ha solucionado pero ahora todo lo referente a la librería TFT_ExpansionV2 me da error.

Arduino:1.6.5 (Mac OS X), Placa:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

sketch_jan29d:24: error: 'Base' does not name a type
sketch_jan29d:27: error: 'Gauge' does not name a type
sketch_jan29d.ino: In function 'void setup()':
sketch_jan29d:45: error: 'myGauge' was not declared in this scope
sketch_jan29d:48: error: 'WHITE' was not declared in this scope
sketch_jan29d:48: error: 'BLACK' was not declared in this scope
sketch_jan29d.ino: In function 'void flynow()':
sketch_jan29d:189: error: 'myGauge' was not declared in this scope
'Base' does not name a type

me he quedado... :o por que ahora ando más perdido aún.

un saludo

La librería que quieres usar no ha sido actualizada para URTouch, algunos ejemplos se quedaron en el tintero. Te sugiero no invertirle tiempo a su modificación, ya que te meterás en un callejón si salida.

Te dejo una copia de la Utouch normalita: lib Utouch

Recuerda correr la calibración de tu pantalla, para que des de alta la tripleta resultante en UtouchCD, y no tengas problemas con la pantalla táctil

Hola chicos, en primer lugas quiero dar las gracias a TFTLCDyg puesto que gracias a tu aporte ya he conseguido cargar mi sketch.

Pero hay una cosilla que se me pasa y a ver si me podeis dar alguna pista:
Soi incapaz de calibrar correctamente la librería UTouch, al poner las coordenadas resultantes de la calibración y cargar el ejemplo de draw, el touch funciona en toda la pantalla (480x800) pero el draw me dibuja solo como si la pantalla fuera de 240x320 o algo así.

Recuerdo que eso mismo me pasó al calibrar la librería URTouch, modifiqué algo a parte de la orientación, y fue la clave, pero muy a mi pesar no recuerdo lo que hice…

Muchísimas gracias por vuestra ayuda.