mirror of
https://github.com/adafruit/TFTLCD-Library.git
synced 2026-10-26 22:11:00 +00:00
tested and working with microtouchx
This commit is contained in:
1 parent
67a3652b26
commit
bed0a09f54
1 file changed
+29
-15
+29
-15
@@ -130,10 +130,17 @@ void Adafruit_TFTLCD::setup(uint8_t cs, uint8_t cd, uint8_t wr, uint8_t rd, uint
|
|||||||
// Convert pin numbers to registers and bitmasks
|
// Convert pin numbers to registers and bitmasks
|
||||||
_reset = rst;
|
_reset = rst;
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
csPort = portOutputRegister(digitalPinToPort(cs));
|
#if defined(CORE_ADAX) || defined(VARIANT_MICROTOUCHX)
|
||||||
cdPort = portOutputRegister(digitalPinToPort(cd));
|
csPort = (uint8_t*)portRegister(digitalPinToPort(cs));
|
||||||
wrPort = portOutputRegister(digitalPinToPort(wr));
|
cdPort = (uint8_t*)portRegister(digitalPinToPort(cd));
|
||||||
rdPort = portOutputRegister(digitalPinToPort(rd));
|
wrPort = (uint8_t*)portRegister(digitalPinToPort(wr));
|
||||||
|
rdPort = (uint8_t*)portRegister(digitalPinToPort(rd));
|
||||||
|
#else
|
||||||
|
csPort = portOutputRegister(digitalPinToPort(cs));
|
||||||
|
cdPort = portOutputRegister(digitalPinToPort(cd));
|
||||||
|
wrPort = portOutputRegister(digitalPinToPort(wr));
|
||||||
|
rdPort = portOutputRegister(digitalPinToPort(rd));
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(__SAM3X8E__)
|
#if defined(__SAM3X8E__)
|
||||||
csPort = digitalPinToPort(cs);
|
csPort = digitalPinToPort(cs);
|
||||||
@@ -152,10 +159,14 @@ void Adafruit_TFTLCD::setup(uint8_t cs, uint8_t cd, uint8_t wr, uint8_t rd, uint
|
|||||||
rdPinUnset = ~rdPinSet;
|
rdPinUnset = ~rdPinSet;
|
||||||
|
|
||||||
#ifdef __AVR__
|
#ifdef __AVR__
|
||||||
*csPort |= csPinSet; // Set all control bits to HIGH (idle)
|
pinMode(cs, OUTPUT);
|
||||||
*cdPort |= cdPinSet; // Signals are ACTIVE LOW
|
pinMode(cd, OUTPUT);
|
||||||
*wrPort |= wrPinSet;
|
pinMode(wr, OUTPUT);
|
||||||
*rdPort |= rdPinSet;
|
pinMode(rd, OUTPUT);
|
||||||
|
digitalWrite(cs, HIGH);
|
||||||
|
digitalWrite(cd, HIGH);
|
||||||
|
digitalWrite(wr, HIGH);
|
||||||
|
digitalWrite(rd, HIGH);
|
||||||
#endif
|
#endif
|
||||||
#if defined(__SAM3X8E__)
|
#if defined(__SAM3X8E__)
|
||||||
csPort->PIO_SODR |= csPinSet; // Set all control bits to HIGH (idle)
|
csPort->PIO_SODR |= csPinSet; // Set all control bits to HIGH (idle)
|
||||||
@@ -378,14 +389,16 @@ void Adafruit_TFTLCD::reset(void) {
|
|||||||
#ifdef USE_ADAFRUIT_SHIELD_PINOUT
|
#ifdef USE_ADAFRUIT_SHIELD_PINOUT
|
||||||
pinMode(5, OUTPUT);
|
pinMode(5, OUTPUT);
|
||||||
digitalWrite(5, LOW);
|
digitalWrite(5, LOW);
|
||||||
delay(2);
|
delay(1);
|
||||||
digitalWrite(5, HIGH);
|
digitalWrite(5, HIGH);
|
||||||
|
delay(1);
|
||||||
#else
|
#else
|
||||||
if(_reset) {
|
if(_reset) {
|
||||||
pinMode(_reset, OUTPUT);
|
pinMode(_reset, OUTPUT);
|
||||||
digitalWrite(_reset, LOW);
|
digitalWrite(_reset, LOW);
|
||||||
delay(2);
|
delay(1);
|
||||||
digitalWrite(_reset, HIGH);
|
digitalWrite(_reset, HIGH);
|
||||||
|
delay(1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -393,8 +406,9 @@ void Adafruit_TFTLCD::reset(void) {
|
|||||||
CS_ACTIVE;
|
CS_ACTIVE;
|
||||||
CD_COMMAND;
|
CD_COMMAND;
|
||||||
write8(0x00);
|
write8(0x00);
|
||||||
for(uint8_t i=0; i<3; i++) WR_STROBE; // Three extra 0x00s
|
for(uint8_t i=0; i<7; i++) WR_STROBE; // Three extra 0x00s
|
||||||
CS_IDLE;
|
CS_IDLE;
|
||||||
|
delay(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets the LCD address window (and address counter, on 932X).
|
// Sets the LCD address window (and address counter, on 932X).
|
||||||
@@ -761,7 +775,7 @@ void Adafruit_TFTLCD::setRotation(uint8_t x) {
|
|||||||
// For 932X, init default full-screen address window:
|
// For 932X, init default full-screen address window:
|
||||||
setAddrWindow(0, 0, _width - 1, _height - 1); // CS_IDLE happens here
|
setAddrWindow(0, 0, _width - 1, _height - 1); // CS_IDLE happens here
|
||||||
|
|
||||||
} if(driver == ID_7575) {
|
} else if(driver == ID_7575) {
|
||||||
|
|
||||||
uint8_t t;
|
uint8_t t;
|
||||||
switch(rotation) {
|
switch(rotation) {
|
||||||
@@ -863,8 +877,8 @@ uint16_t Adafruit_TFTLCD::readPixel(int16_t x, int16_t y) {
|
|||||||
// Ditto with the read/write port directions, as above.
|
// Ditto with the read/write port directions, as above.
|
||||||
uint16_t Adafruit_TFTLCD::readID(void) {
|
uint16_t Adafruit_TFTLCD::readID(void) {
|
||||||
|
|
||||||
#if defined(CORE_MICROTOUCHX)
|
#if defined(VARIANT_MICROTOUCHX)
|
||||||
uint16_t id;
|
uint32_t id;
|
||||||
|
|
||||||
id = readReg(0xD3);
|
id = readReg(0xD3);
|
||||||
if (id == 0x9341) {
|
if (id == 0x9341) {
|
||||||
@@ -891,7 +905,7 @@ uint16_t Adafruit_TFTLCD::readID(void) {
|
|||||||
uint32_t Adafruit_TFTLCD::readReg(uint8_t r) {
|
uint32_t Adafruit_TFTLCD::readReg(uint8_t r) {
|
||||||
uint32_t id = 0;
|
uint32_t id = 0;
|
||||||
|
|
||||||
#if defined(CORE_MICROTOUCHX)
|
#if defined(VARIANT_MICROTOUCHX)
|
||||||
// try reading register #4
|
// try reading register #4
|
||||||
CS_ACTIVE;
|
CS_ACTIVE;
|
||||||
CD_COMMAND;
|
CD_COMMAND;
|
||||||
|
|||||||
Reference in new issue
Block a user