fix missing bitorder define on some platforms, and update i2cregister to busioreg

This commit is contained in:
ladyada 2019-05-18 00:12:37 -04:00
parent 31ba580ed3
commit 38dcfd17b0
3 changed files with 11 additions and 8 deletions

View File

@ -22,10 +22,10 @@ bool Adafruit_SPIDevice::write(uint8_t *buffer, size_t len, uint8_t *prefix_buff
_spi->beginTransaction(*_spiSetting); _spi->beginTransaction(*_spiSetting);
digitalWrite(_cs, LOW); digitalWrite(_cs, LOW);
// do the writing // do the writing
for (int i=0; i<prefix_len; i++) { for (size_t i=0; i<prefix_len; i++) {
_spi->transfer(prefix_buffer[i]); _spi->transfer(prefix_buffer[i]);
} }
for (int i=0; i<len; i++) { for (size_t i=0; i<len; i++) {
_spi->transfer(buffer[i]); _spi->transfer(buffer[i]);
} }
digitalWrite(_cs, HIGH); digitalWrite(_cs, HIGH);
@ -85,7 +85,7 @@ bool Adafruit_SPIDevice::write_then_read(uint8_t *write_buffer, size_t write_len
_spi->beginTransaction(*_spiSetting); _spi->beginTransaction(*_spiSetting);
digitalWrite(_cs, LOW); digitalWrite(_cs, LOW);
// do the writing // do the writing
for (int i=0; i<write_len; i++) { for (size_t i=0; i<write_len; i++) {
_spi->transfer(write_buffer[i]); _spi->transfer(write_buffer[i]);
} }
@ -103,7 +103,7 @@ bool Adafruit_SPIDevice::write_then_read(uint8_t *write_buffer, size_t write_len
#endif #endif
// do the reading // do the reading
for (int i=0; i<read_len; i++) { for (size_t i=0; i<read_len; i++) {
read_buffer[i] = _spi->transfer(sendvalue); read_buffer[i] = _spi->transfer(sendvalue);
} }

View File

@ -3,6 +3,9 @@
#ifndef Adafruit_SPIDevice_h #ifndef Adafruit_SPIDevice_h
#define Adafruit_SPIDevice_h #define Adafruit_SPIDevice_h
#if !defined(BitOrder) // modern SPI definitions have a BitOrder enum
typedef uint8_t BitOrder;
#endif
class Adafruit_SPIDevice { class Adafruit_SPIDevice {
public: public:

View File

@ -1,5 +1,5 @@
#include <Adafruit_I2CDevice.h> #include <Adafruit_I2CDevice.h>
#include <Adafruit_I2CRegister.h> #include <Adafruit_BusIO_Register.h>
#define I2C_ADDRESS 0x60 #define I2C_ADDRESS 0x60
Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS); Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS);
@ -18,12 +18,12 @@ void setup() {
Serial.print("Device found on address 0x"); Serial.print("Device found on address 0x");
Serial.println(i2c_dev.address(), HEX); Serial.println(i2c_dev.address(), HEX);
Adafruit_I2CRegister id_reg = Adafruit_I2CRegister(&i2c_dev, 0x0C, 2, LSBFIRST); Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(&i2c_dev, 0x0C, 2, LSBFIRST);
uint16_t id; uint16_t id;
id_reg.read(&id); id_reg.read(&id);
Serial.print("ID register = 0x"); Serial.println(id, HEX); Serial.print("ID register = 0x"); Serial.println(id, HEX);
Adafruit_I2CRegister thresh_reg = Adafruit_I2CRegister(&i2c_dev, 0x01, 2, LSBFIRST); Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(&i2c_dev, 0x01, 2, LSBFIRST);
uint16_t thresh; uint16_t thresh;
thresh_reg.read(&thresh); thresh_reg.read(&thresh);
Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX); Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX);
@ -35,4 +35,4 @@ void setup() {
void loop() { void loop() {
} }