uint16_t Adafruit_STMPE610::readRegister16(uint8_t reg) { uint16_t x; if (_CS == -1) { // use i2c Wire.beginTransmission(_i2caddr); Wire.write((byte)reg); Wire.endTransmission(); Wire.requestFrom(_i2caddr, (byte)2); x = Wire.read(); x<<=8; x |= Wire.read(); Wire.endTransmission(); } if (_CLK == -1) { // hardware SPI #if defined (SPI_HAS_TRANSACTION) if (_CLK == -1) SPI.beginTransaction(mySPISettings); #endif digitalWrite(_CS, LOW); spiOut(0x80 | reg); spiOut(0x00); x = spiIn(); x<<=8; x |= spiIn(); digitalWrite(_CS, HIGH); #if defined (SPI_HAS_TRANSACTION) if (_CLK == -1) SPI.endTransaction(); #endif } //Serial.print("$"); Serial.print(reg, HEX); //Serial.print(": 0x"); Serial.println(x, HEX); return x; }
uint16_t Adafruit_STMPE610::readRegister16(uint8_t reg) { uint16_t x; spi_begin(); CSLow(); spiOut(0x80 | reg); spiOut(0x00); x = spiIn(); x<<=8; x |= spiIn(); CSHigh(); spi_end(); //Serial.print("$"); Serial.print(reg, HEX); //Serial.print(": 0x"); Serial.println(x, HEX); return x; }
uint8_t Adafruit_STMPE610::readRegister8(uint8_t reg) { uint8_t x ; spi_begin(); CSLow(); spiOut(0x80 | reg); spiOut(0x00); x = spiIn(); CSHigh(); spi_end(); return x; }