mirror of
https://github.com/esp8266/Arduino.git
synced 2025-08-05 13:16:13 +03:00
Adafruit_ILI9341 add functions for easy write a data stream to display.
Adafruit_ILI9341 allow biger size for spiwriteBytes
This commit is contained in:
@@ -127,7 +127,7 @@ void Adafruit_ILI9341::spiwrite(uint8_t c) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Adafruit_ILI9341::spiwriteBytes(uint8_t * data, uint8_t size) {
|
void Adafruit_ILI9341::spiwriteBytes(uint8_t * data, uint32_t size) {
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
SPI.writeBytes(data, size);
|
SPI.writeBytes(data, size);
|
||||||
#else
|
#else
|
||||||
@@ -250,13 +250,21 @@ void Adafruit_ILI9341::writeCmdData(uint8_t cmd, uint8_t * data, uint8_t size) {
|
|||||||
spiCsHigh();
|
spiCsHigh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t Adafruit_ILI9341::getHeight(void) {
|
||||||
|
return _height;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t Adafruit_ILI9341::getWidth(void){
|
||||||
|
return _width;
|
||||||
|
}
|
||||||
|
|
||||||
// If the SPI library has transaction support, these functions
|
// If the SPI library has transaction support, these functions
|
||||||
// establish settings and protect from interference from other
|
// establish settings and protect from interference from other
|
||||||
// libraries. Otherwise, they simply do nothing.
|
// libraries. Otherwise, they simply do nothing.
|
||||||
#ifdef SPI_HAS_TRANSACTION
|
#ifdef SPI_HAS_TRANSACTION
|
||||||
|
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
SPISettings spiSettings = SPISettings(F_CPU, MSBFIRST, SPI_MODE0);
|
SPISettings spiSettings = SPISettings(SPI_MAX_SPEED, MSBFIRST, SPI_MODE0);
|
||||||
#else
|
#else
|
||||||
SPISettings spiSettings = SPISettings(8000000, MSBFIRST, SPI_MODE0);
|
SPISettings spiSettings = SPISettings(8000000, MSBFIRST, SPI_MODE0);
|
||||||
#endif
|
#endif
|
||||||
@@ -438,6 +446,20 @@ void Adafruit_ILI9341::begin(void) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Adafruit_ILI9341::area_update_start(uint32_t x, uint32_t y, uint32_t w, uint32_t h) {
|
||||||
|
spiCsLow();
|
||||||
|
setAddrWindow_(x, y, x + w - 1, y + h - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Adafruit_ILI9341::area_update_data(uint8_t *data, uint32_t pixel){
|
||||||
|
spiwriteBytes(&data[0], (pixel*2));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Adafruit_ILI9341::area_update_end(void){
|
||||||
|
spiCsHigh();
|
||||||
|
}
|
||||||
|
|
||||||
void Adafruit_ILI9341::setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) {
|
void Adafruit_ILI9341::setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) {
|
||||||
spiCsLow();
|
spiCsLow();
|
||||||
setAddrWindow_(x0, y0, x1, y1);
|
setAddrWindow_(x0, y0, x1, y1);
|
||||||
@@ -583,7 +605,7 @@ void Adafruit_ILI9341::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint
|
|||||||
|
|
||||||
spiCsLow();
|
spiCsLow();
|
||||||
|
|
||||||
setAddrWindow_(x, y, x + w - 1, y + h - 1);
|
setAddrWindow_(x, y, (x + w - 1), (y + h - 1));
|
||||||
|
|
||||||
uint8_t colorBin[] = { (uint8_t) (color >> 8), (uint8_t) color };
|
uint8_t colorBin[] = { (uint8_t) (color >> 8), (uint8_t) color };
|
||||||
spiwritePattern(&colorBin[0], 2, (w * h));
|
spiwritePattern(&colorBin[0], 2, (w * h));
|
||||||
|
@@ -158,6 +158,13 @@ class Adafruit_ILI9341 : public Adafruit_GFX {
|
|||||||
void writedata(uint8_t * data, uint8_t size);
|
void writedata(uint8_t * data, uint8_t size);
|
||||||
void writeCmdData(uint8_t cmd, uint8_t * data, uint8_t size);
|
void writeCmdData(uint8_t cmd, uint8_t * data, uint8_t size);
|
||||||
|
|
||||||
|
|
||||||
|
uint16_t getHeight(void);
|
||||||
|
uint16_t getWidth(void);
|
||||||
|
|
||||||
|
void area_update_start(uint32_t x, uint32_t y, uint32_t w, uint32_t h);
|
||||||
|
void area_update_data(uint8_t *data, uint32_t pixel);
|
||||||
|
void area_update_end(void);
|
||||||
private:
|
private:
|
||||||
|
|
||||||
uint8_t spiread(void);
|
uint8_t spiread(void);
|
||||||
@@ -166,7 +173,7 @@ class Adafruit_ILI9341 : public Adafruit_GFX {
|
|||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
inline void spiwrite(uint8_t data);
|
inline void spiwrite(uint8_t data);
|
||||||
inline void spiwrite16(uint16_t data);
|
inline void spiwrite16(uint16_t data);
|
||||||
inline void spiwriteBytes(uint8_t * data, uint8_t size);
|
inline void spiwriteBytes(uint8_t * data, uint32_t size);
|
||||||
inline void spiwritePattern(uint8_t * data, uint8_t size, uint32_t repeat);
|
inline void spiwritePattern(uint8_t * data, uint8_t size, uint32_t repeat);
|
||||||
|
|
||||||
inline void setAddrWindow_(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
|
inline void setAddrWindow_(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
|
||||||
|
Reference in New Issue
Block a user