diff --git a/src/i2cEncoderLibV2.cpp b/src/i2cEncoderLibV2.cpp index e7d7d84..665b3b7 100644 --- a/src/i2cEncoderLibV2.cpp +++ b/src/i2cEncoderLibV2.cpp @@ -22,7 +22,8 @@ i2cEncoderLibV2::i2cEncoderLibV2(uint8_t add) { } /** Used for initialize the encoder **/ -void i2cEncoderLibV2::begin(uint16_t conf) { +bool i2cEncoderLibV2::begin(uint16_t conf) { + uint16_t gconf; writeEncoder(REG_GCONF, (uint8_t)( conf & 0xFF)); writeEncoder(REG_GCONF2, (uint8_t)((conf >> 8) & 0xFF)); @@ -31,6 +32,9 @@ void i2cEncoderLibV2::begin(uint16_t conf) { _clockstreach = 0; else _clockstreach = 1; + + gconf = (readEncoderByte(REG_GCONF2) << 8) | readEncoderByte(REG_GCONF); + return (conf == gconf); } /** Reset the board **/ diff --git a/src/i2cEncoderLibV2.h b/src/i2cEncoderLibV2.h index a6b875c..affc93b 100644 --- a/src/i2cEncoderLibV2.h +++ b/src/i2cEncoderLibV2.h @@ -185,7 +185,7 @@ class i2cEncoderLibV2 { /** Configuration methods **/ i2cEncoderLibV2(uint8_t add); - void begin(uint16_t conf); + bool begin(uint16_t conf); void reset(void); void autoconfigInterrupt(void); diff --git a/src/i2cEncoderMiniLib.cpp b/src/i2cEncoderMiniLib.cpp index ca11898..1973924 100644 --- a/src/i2cEncoderMiniLib.cpp +++ b/src/i2cEncoderMiniLib.cpp @@ -22,10 +22,11 @@ i2cEncoderMiniLib::i2cEncoderMiniLib(uint8_t add) { } /** Used for initialize the I2C Encoder Mini **/ -void i2cEncoderMiniLib::begin(uint8_t conf) { +bool i2cEncoderMiniLib::begin(uint8_t conf) { writeEncoder(REG_GCONF, (uint8_t) conf); _gconf = conf; + return (conf == readEncoderByte(REG_GCONF)); } /** Used for reset the I2C Encoder Mini **/ diff --git a/src/i2cEncoderMiniLib.h b/src/i2cEncoderMiniLib.h index b5a35d5..e9a31a0 100644 --- a/src/i2cEncoderMiniLib.h +++ b/src/i2cEncoderMiniLib.h @@ -105,7 +105,7 @@ class i2cEncoderMiniLib { /** Configuration methods **/ i2cEncoderMiniLib(uint8_t add); - void begin(uint8_t conf); + bool begin(uint8_t conf); void reset(void); void autoconfigInterrupt(void);