diff --git a/libraries/TFT/src/utility/Adafruit_ST7735.cpp b/libraries/TFT/src/utility/Adafruit_ST7735.cpp index 1fdd37ef6..c9698a6e5 100644 --- a/libraries/TFT/src/utility/Adafruit_ST7735.cpp +++ b/libraries/TFT/src/utility/Adafruit_ST7735.cpp @@ -76,7 +76,12 @@ void Adafruit_ST7735::writecommand(uint8_t c) { #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, LOW); +#else *rsport &= ~rspinmask; +#endif *csport &= ~cspinmask; //Serial.print("C "); @@ -93,7 +98,12 @@ void Adafruit_ST7735::writedata(uint8_t c) { #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, HIGH); +#else *rsport |= rspinmask; +#endif *csport &= ~cspinmask; //Serial.print("D "); @@ -432,7 +442,12 @@ void Adafruit_ST7735::pushColor(uint16_t color) { #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, HIGH); +#else *rsport |= rspinmask; +#endif *csport &= ~cspinmask; if (tabcolor == INITR_BLACKTAB) color = swapcolor(color); @@ -454,7 +469,12 @@ void Adafruit_ST7735::drawPixel(int16_t x, int16_t y, uint16_t color) { #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, HIGH); +#else *rsport |= rspinmask; +#endif *csport &= ~cspinmask; if (tabcolor == INITR_BLACKTAB) color = swapcolor(color); @@ -483,7 +503,12 @@ void Adafruit_ST7735::drawFastVLine(int16_t x, int16_t y, int16_t h, #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, HIGH); +#else *rsport |= rspinmask; +#endif *csport &= ~cspinmask; while (h--) { spiwrite(hi); @@ -510,7 +535,12 @@ void Adafruit_ST7735::drawFastHLine(int16_t x, int16_t y, int16_t w, #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, HIGH); +#else *rsport |= rspinmask; +#endif *csport &= ~cspinmask; while (w--) { spiwrite(hi); @@ -547,7 +577,12 @@ void Adafruit_ST7735::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, #ifdef SPI_HAS_TRANSACTION if (hwSPI) SPI.beginTransaction(spisettings); #endif + +#ifdef __ARDUINO_ARC__ + digitalWrite(_rs, HIGH); +#else *rsport |= rspinmask; +#endif *csport &= ~cspinmask; for(y=h; y>0; y--) { for(x=w; x>0; x--) { diff --git a/libraries/TFT/src/utility/Adafruit_ST7735.h b/libraries/TFT/src/utility/Adafruit_ST7735.h index 0233a93a2..077045dca 100644 --- a/libraries/TFT/src/utility/Adafruit_ST7735.h +++ b/libraries/TFT/src/utility/Adafruit_ST7735.h @@ -139,7 +139,7 @@ class Adafruit_ST7735 : public Adafruit_GFX { #ifdef SPI_HAS_TRANSACTION SPISettings spisettings; #endif -#if defined(ARDUINO_ARCH_SAM) +#if defined(ARDUINO_ARCH_SAM) || defined(__ARDUINO_ARC__) volatile uint32_t *dataport, *clkport, *csport, *rsport; uint32_t _cs, _rs, _rst, _sid, _sclk, datapinmask, clkpinmask, cspinmask, rspinmask, diff --git a/libraries/TFT/src/utility/glcdfont.c b/libraries/TFT/src/utility/glcdfont.c index 9527e3558..2f857b06c 100644 --- a/libraries/TFT/src/utility/glcdfont.c +++ b/libraries/TFT/src/utility/glcdfont.c @@ -1,4 +1,4 @@ -#ifndef ARDUINO_ARCH_SAM +#if !defined(ARDUINO_ARCH_SAM) && !defined(__ARDUINO_ARC__) #include #endif #include