Adafruit 3.5" toucscreen HX8357 - Error Compiling

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
jialee
 
Posts: 64
Joined: Wed Nov 19, 2014 4:12 pm

Adafruit 3.5" toucscreen HX8357 - Error Compiling

Post by jialee »

Hi Adafruit,

I'm working with the tft touchscreen. I tested the screen with examples such as graphictest and spitftbitmap. It worked great!

When I was compiling breakouttouchpaint, i got the following lengthy error. Can you help me look into this error? FYI, I'm using Arduino Due w 32-bit ARM-based MCU and SPI. Thanks!

Code: Select all

Arduino: 1.5.8 (Windows 7), Board: "Arduino Due (Programming Port)"

In file included from C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/pins_arduino.h:20:0,
                 from C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:6:
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp: In member function 'TSPoint TouchScreen::getPoint()':
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio*' to 'uint8_t {aka unsigned char}' [-fpermissive]
 #define digitalPinToPort(P)        ( g_APinDescription[P].pPort )
                                                                 ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:57:21: note: in expansion of macro 'digitalPinToPort'
   uint8_t xp_port = digitalPinToPort(_xp);
                     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio*' to 'uint8_t {aka unsigned char}' [-fpermissive]
 #define digitalPinToPort(P)        ( g_APinDescription[P].pPort )
                                                                 ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:58:21: note: in expansion of macro 'digitalPinToPort'
   uint8_t yp_port = digitalPinToPort(_yp);
                     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio*' to 'uint8_t {aka unsigned char}' [-fpermissive]
 #define digitalPinToPort(P)        ( g_APinDescription[P].pPort )
                                                                 ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:59:21: note: in expansion of macro 'digitalPinToPort'
   uint8_t xm_port = digitalPinToPort(_xm);
                     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio*' to 'uint8_t {aka unsigned char}' [-fpermissive]
 #define digitalPinToPort(P)        ( g_APinDescription[P].pPort )
                                                                 ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:60:21: note: in expansion of macro 'digitalPinToPort'
   uint8_t ym_port = digitalPinToPort(_ym);
                     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:73:4: note: in expansion of macro 'portOutputRegister'
   *portOutputRegister(yp_port) &= ~yp_pin;
    ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:74:4: note: in expansion of macro 'portOutputRegister'
   *portOutputRegister(ym_port) &= ~ym_pin;
    ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:82:4: note: in expansion of macro 'portOutputRegister'
   *portOutputRegister(xp_port) |= xp_pin;
    ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:83:4: note: in expansion of macro 'portOutputRegister'
   *portOutputRegister(xm_port) &= ~xm_pin;
    ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:98:5: note: in expansion of macro 'portOutputRegister'
    *portOutputRegister(xp_port) &= ~xp_pin;
     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:102:5: note: in expansion of macro 'portOutputRegister'
    *portOutputRegister(yp_port) |= yp_pin;
     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:121:5: note: in expansion of macro 'portOutputRegister'
    *portOutputRegister(xp_port) &= ~xp_pin;
     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:125:5: note: in expansion of macro 'portOutputRegister'
    *portOutputRegister(ym_port) |= ym_pin;
     ^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
 #define portOutputRegister(port)   ( &(port->PIO_ODSR) )
                                            ^
C:\Users\Jian\Documents\Arduino\libraries\Touch-Screen\TouchScreen.cpp:129:5: note: in expansion of macro 'portOutputRegister'
    *portOutputRegister(yp_port) &= ~yp_pin;
     ^
Error compiling.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit 3.5" toucscreen HX8357 - Error Compiling

Post by adafruit_support_rick »

try the attached TouchScreen library. Delete the Touchscreen library you have and replace it with this one.
Attachments
TouchScreen_Due.zip
(8.5 KiB) Downloaded 133 times

User avatar
jialee
 
Posts: 64
Joined: Wed Nov 19, 2014 4:12 pm

Re: Adafruit 3.5" toucscreen HX8357 - Error Compiling

Post by jialee »

Thanks, Rick! It's working now. Was the previous library not compatible with DUE? I saw several functions have been replaced in TouchScreen.cpp.

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Adafruit 3.5" toucscreen HX8357 - Error Compiling

Post by adafruit_support_rick »

Yes. I've got to update the regular library with the Due support. It's on the list...

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”