Your new topic does not fit any of the above??? Check first. Then post here. Thanks.

Moderator: igrr

User avatar
By marcelstoer
#82448 https://github.com/esp8266/Arduino/pull/5995 introduced a new check for ISRs.

My sketch using https://github.com/PaulStoffregen/XPT2046_Touchscreen now fails when the touchscreen is initialized.

The decoded stacktrace is as follows

Code: Select allDecoding stack results
0x4020eb15: Print::write(char const*) at /Users/marcelstoer/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/Print.h line 60
0x401004be: __attachInterrupt(uint8_t, voidFuncPtr, int) at /Users/marcelstoer/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266/core_esp8266_wiring_digital.cpp line 206
0x402053c0: XPT2046_Touchscreen::begin() at /Users/marcelstoer/Data/Arduino/libraries/XPT2046_Touchscreen/XPT2046_Touchscreen.cpp line 41


The sketch snippet that invokes this is as follows:

Code: Select allvoid setup() {
  Serial.begin(115200);

  // The LED pin needs to set HIGH
  // Use this pin to save energy
  // Turn on the background LED
  Serial.println(TFT_LED);
  pinMode(TFT_LED, OUTPUT);
  digitalWrite(TFT_LED, HIGH);    // HIGH to Turn on;

  connectWifi();

  Serial.println("Initializing touch screen...");
  ts.begin(); // this is XPT2046_Touchscreen::begin() in the stacktrace
 
  Serial.println("Mounting file system...");
 ...


Is this something I can fix in my sketch or does the XPT2046_Touchscreen library author have to address this in his code?
User avatar
By btidey
#82454 I think your choices are

1) Contact library author and wait for a fix

2) Revert arduino esp8266 support prior to the extra isr check (which is a sensible check)

3) Temporarily put a fix in your copy of the library and then use strategy 1. The fix could just be to make line 46 of XPT2046_Touchscreen.cpp

#ifdef ESP32 || ESP8266