add SPI mode where 7th bit is used to auto-inc

This commit is contained in:
Lady Ada 2019-12-21 19:24:21 -05:00
parent a4a1f18b44
commit 57b2f917cf
3 changed files with 10 additions and 2 deletions

View File

@ -80,6 +80,10 @@ bool Adafruit_BusIO_Register::write(uint8_t *buffer, uint8_t len) {
if (_spiregtype == ADDRBIT8_HIGH_TOREAD) {
addrbuffer[0] &= ~0x80;
}
if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) {
addrbuffer[0] &= ~0x80;
addrbuffer[0] |= 0x40;
}
return _spidevice->write( buffer, len, addrbuffer, _addrwidth);
}
return false;
@ -150,6 +154,9 @@ bool Adafruit_BusIO_Register::read(uint8_t *buffer, uint8_t len) {
if (_spiregtype == ADDRBIT8_HIGH_TOREAD) {
addrbuffer[0] |= 0x80;
}
if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) {
addrbuffer[0] |= 0x80 | 0x40;
}
return _spidevice->write_then_read(addrbuffer, _addrwidth, buffer, len);
}
return false;

View File

@ -8,6 +8,7 @@
typedef enum _Adafruit_BusIO_SPIRegType {
ADDRBIT8_HIGH_TOREAD = 0,
AD8_HIGH_TOREAD_AD7_HIGH_TOINC = 1,
} Adafruit_BusIO_SPIRegType;
/*!

View File

@ -117,12 +117,12 @@ bool Adafruit_I2CDevice::write(uint8_t *buffer, size_t len, bool stop, uint8_t *
#endif
#ifdef DEBUG_SERIAL
DEBUG_SERIAL.print("Stop: "); DEBUG_SERIAL.println(stop);
//DEBUG_SERIAL.print("Stop: "); DEBUG_SERIAL.println(stop);
#endif
if (_wire->endTransmission(stop) == 0) {
#ifdef DEBUG_SERIAL
DEBUG_SERIAL.println("Sent!");
//DEBUG_SERIAL.println("Sent!");
#endif
return true;
} else {