#include "Arduino.h" #include #include TAMC_GT911::TAMC_GT911(uint8_t _sda, uint8_t _scl, uint8_t _int, uint8_t _rst, uint16_t _width, uint16_t _height) : pinSda(_sda), pinScl(_scl), pinInt(_int), pinRst(_rst), width(_width), height(_height) { } void TAMC_GT911::begin(uint8_t _addr) { addr = _addr; Wire.begin(pinSda, pinScl); reset(); } void TAMC_GT911::reset() { pinMode(pinInt, OUTPUT); pinMode(pinRst, OUTPUT); digitalWrite(pinInt, 0); digitalWrite(pinRst, 0); delay(10); digitalWrite(pinInt, addr==GT911_ADDR2); delay(1); digitalWrite(pinRst, 1); delay(5); digitalWrite(pinInt, 0); delay(50); pinMode(pinInt, INPUT); // attachInterrupt(pinInt, TAMC_GT911::onInterrupt, RISING); delay(50); readBlockData(configBuf, GT911_CONFIG_START, GT911_CONFIG_SIZE); setResolution(width, height); } void TAMC_GT911::calculateChecksum() { uint8_t checksum; for (uint8_t i=0; i> 7 & 1; uint8_t proximityValid = pointInfo >> 5 & 1; uint8_t haveKey = pointInfo >> 4 & 1; isLargeDetect = pointInfo >> 6 & 1; touches = pointInfo & 0xF; // Serial.print("bufferStatus: ");Serial.println(bufferStatus); // Serial.print("largeDetect: ");Serial.println(isLargeDetect); // Serial.print("proximityValid: ");Serial.println(proximityValid); // Serial.print("haveKey: ");Serial.println(haveKey); // Serial.print("touches: ");Serial.println(touches); isTouched = touches > 0; if (bufferStatus == 1 && isTouched) { for (uint8_t i=0; i