Skip to content

Commit

Permalink
Added SPI1/2 for IMXRT1062
Browse files Browse the repository at this point in the history
  • Loading branch information
mjs513 committed Apr 21, 2019
1 parent 997cfb0 commit 049eea1
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 17 deletions.
62 changes: 49 additions & 13 deletions ILI9488_t3.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1659,19 +1659,41 @@ void ILI9488_t3::begin(void)
}
}
#elif defined(__IMXRT1052__) || defined(__IMXRT1062__) // Teensy 4.x
if(spi_port == &SPI){
if (SPI.pinIsMOSI(_mosi) && SPI.pinIsMISO(_miso) && SPI.pinIsSCK(_sclk)) {
//spi_port= &SPI;
uint32_t *pa = (uint32_t*)((void*)spi_port);
_spi_hardware = (SPIClass::SPI_Hardware_t*)(void*)pa[1];
_pimxrt_spi = (IMXRT_LPSPI_t *)(void*)pa[0];
}
Serial.println("ILI9488_t3n: (T4) SPI automatically selected");
} else {
Serial.println("T4: SPI Port not supported");
return;
}

if(spi_port == &SPI){
if (SPI.pinIsMOSI(_mosi) && SPI.pinIsMISO(_miso) && SPI.pinIsSCK(_sclk)) {
//spi_port= &SPI;
uint32_t *pa = (uint32_t*)((void*)spi_port);
_spi_hardware = (SPIClass::SPI_Hardware_t*)(void*)pa[1];
_pimxrt_spi = (IMXRT_LPSPI_t *)(void*)pa[0];
}
Serial.println("ILI9488_t3n: (T4) SPI automatically selected");
} else {
Serial.println("T4: SPI Port not supported");
return;
}
#if defined(__IMXRT1062__)
if(spi_port == &SPI1){
if (SPI1.pinIsMOSI(_mosi) && SPI1.pinIsMISO(_miso) && SPI1.pinIsSCK(_sclk)) {
//spi_port= &SPI;
uint32_t *pa = (uint32_t*)((void*)spi_port);
_spi_hardware = (SPIClass::SPI_Hardware_t*)(void*)pa[1];
_pimxrt_spi = (IMXRT_LPSPI_t *)(void*)pa[0];
}
Serial.println("ILI9488_t3n: (T4) SPI automatically selected");
} else if(spi_port == &SPI2){
if (SPI2.pinIsMOSI(_mosi) && SPI2.pinIsMISO(_miso) && SPI2.pinIsSCK(_sclk)) {
//spi_port= &SPI;
uint32_t *pa = (uint32_t*)((void*)spi_port);
_spi_hardware = (SPIClass::SPI_Hardware_t*)(void*)pa[1];
_pimxrt_spi = (IMXRT_LPSPI_t *)(void*)pa[0];
}
Serial.println("ILI9488_t3n: (T4) SPI automatically selected");
} else {
Serial.println("T4: SPI Port not supported");
return;
}
#endif

uint8_t mosi_sck_bad = false;
if(!(spi_port->pinIsMOSI(_mosi))) {
Serial.print(" MOSI");
Expand Down Expand Up @@ -3155,6 +3177,18 @@ void ILI9488_t3::resetScrollBackgroundColor(uint16_t color){
scrollbgcolor=color;
}

////////////////////////////////////////////////////////////////////////////
// ROUTINES FOR MASKING AND OVERDRAW - 3D rendering
////////////////////////////////////////////////////////////////////////////

// Functions for controlling masked and overdrawn rendering
void ILI9488_t3::overdraw_on() {do_overdraw = 1;}
void ILI9488_t3::overdraw_off() {do_overdraw = 0;}
void ILI9488_t3::masking_on() {do_masking = 1;}
void ILI9488_t3::masking_off() {do_masking = 0;}
//void ILI9488_t3::flip_mask() {mask_flag ^= FRAME_ID_FLAG8;}




void Adafruit_GFX_Button::initButton(ILI9488_t3 *gfx,
Expand Down Expand Up @@ -3753,3 +3787,5 @@ void ILI9488_t3::waitUpdateAsyncComplete(void)
writecommand_cont(ILI9488_RAMWR);
write16BitColor(color);
}


29 changes: 25 additions & 4 deletions ILI9488_t3.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,10 @@
#define ILI9488_DISPOFF 0x28
#define ILI9488_DISPON 0x29

#define ILI9488_CASET 0x2A
#define ILI9488_PASET 0x2B
#define ILI9488_RAMWR 0x2C
#define ILI9488_RAMRD 0x2E
#define ILI9488_CASET 0x2A //Column Address Set
#define ILI9488_PASET 0x2B //Page Address Set
#define ILI9488_RAMWR 0x2C //Memory Write
#define ILI9488_RAMRD 0x2E //Memory Read

#define ILI9488_PTLAR 0x30
#define ILI9488_MADCTL 0x36
Expand Down Expand Up @@ -125,6 +125,13 @@

#define ILI9488_GMCTRP1 0xE0
#define ILI9488_GMCTRN1 0xE1

// define aliases for commonly used commands.
#define SET_COLUMN_ADDRESS_WINDOW 0x2A
#define SET_ROW_ADDRESS_WINDOW 0x2B
#define BEGIN_PIXEL_DATA 0x2C
#define BEGIN_READ_DATA 0x2E
#define READ_MEMORY_CONTINUE 0x3E
/*
#define ILI9488_PWCTR6 0xFC
Expand Down Expand Up @@ -423,6 +430,20 @@ class ILI9488_t3 : public Print
boolean asyncUpdateActive(void) {return false;}
#endif

//3D Rendering Engine
// State variables for controlling masked and overdrawn rendering
uint8_t mask_flag = 0;
uint8_t do_masking = 0;
uint8_t do_overdraw = 0;
uint16_t background_color = 0;
uint16_t foreground_color = ILI9488_WHITE;

// Functions for controlling masked and overdrawn rendering
void overdraw_on();
void overdraw_off();
void masking_on();
void masking_off();
void flip_mask();

protected:
SPIClass *spi_port;
Expand Down

0 comments on commit 049eea1

Please sign in to comment.