@@ -124,7 +124,7 @@ sfeTkError_t sfeTkArdI2C::writeRegisterByte(uint8_t devReg, uint8_t dataToWrite)
124124// ---------------------------------------------------------------------------------
125125// writeRegisterWord()
126126//
127- // Writes a world to a given register.
127+ // Writes a word to a given register.
128128//
129129// Returns true on success, false on failure
130130//
@@ -136,6 +136,14 @@ sfeTkError_t sfeTkArdI2C::writeRegisterWord(uint8_t devReg, uint16_t dataToWrite
136136 return writeRegisterRegion (devReg, (uint8_t *)&dataToWrite, sizeof (uint16_t ));
137137}
138138
139+ // ---------------------------------------------------------------------------------
140+ // writeRegisterRegionAddress()
141+ //
142+ // Writes an array of bytes of specified length to a given register on the
143+ // target address
144+ //
145+ // Returns the number of bytes written, < 0 is an error
146+ //
139147sfeTkError_t sfeTkArdI2C::writeRegisterRegionAddress (uint8_t *devReg, size_t regLength, const uint8_t *data, size_t length)
140148{
141149 if (!_i2cPort)
@@ -167,26 +175,19 @@ sfeTkError_t sfeTkArdI2C::writeRegisterRegion(uint8_t devReg, const uint8_t *dat
167175//
168176// Returns the number of bytes written, < 0 is an error
169177//
170- // sfeTkError_t sfeTkArdI2C::writeRegister16Region(uint16_t devReg, uint8_t *data, size_t length)
171- // {
172- // if (!_i2cPort)
173- // return kSTkErrBusNotInit;
174- // _i2cPort->beginTransmission(address());
175- // _i2cPort->write((devReg >> 8) & 0xff);
176- // _i2cPort->write(devReg & 0xff);
177- // for(int i = 0; i < length; i++)
178- // {
179- // _i2cPort->write(data[i]);
180- // }
181- // return _i2cPort->endTransmission() ? kSTkErrFail : kSTkErrOk;
182- // }
183-
184178sfeTkError_t sfeTkArdI2C::writeRegister16Region (uint16_t devReg, uint8_t *data, size_t length)
185179{
186180 devReg = ((devReg << 8 ) & 0xff00 ) | ((devReg >> 8 ) & 0x00ff );
187181 return writeRegisterRegionAddress ((uint8_t *)&devReg, 2 , data, length);
188182}
189183
184+ // ---------------------------------------------------------------------------------
185+ // readRegisterRegionAnyAddress()
186+ //
187+ // Reads an array of bytes to a register on the target address
188+ //
189+ // Returns the number of bytes written, < 0 is an error
190+ //
190191sfeTkError_t sfeTkArdI2C::readRegisterRegionAnyAddress (uint8_t *devReg, size_t regLength, uint8_t *data, size_t numBytes, size_t &readBytes)
191192{
192193
@@ -281,10 +282,11 @@ sfeTkError_t sfeTkArdI2C::readRegisterByte(uint8_t devReg, uint8_t &dataToRead)
281282
282283 return (nData == sizeof (uint8_t ) ? kSTkErrOk : kSTkErrFail );
283284}
285+
284286// ---------------------------------------------------------------------------------
285287// readRegisterWord()
286288//
287- // Reads a world to a given register.
289+ // Reads a word to a given register.
288290//
289291// Returns true on success, false on failure
290292//
@@ -321,8 +323,6 @@ sfeTkError_t sfeTkArdI2C::readRegisterRegion(uint8_t devReg, uint8_t *data, size
321323sfeTkError_t sfeTkArdI2C::readRegister16Region (uint16_t devReg, uint8_t *data, size_t numBytes)
322324{
323325 size_t readBytes = 0 ;
324- devReg = ((devReg << 8 ) & 0xff00 ) | ((devReg >> 8 ) & 0x00ff );
325- // _i2cPort->write((devReg >> 8) & 0xff);
326- // _i2cPort->write(devReg & 0xff);
326+ devReg = ((devReg << 8 ) & 0xff00 ) | ((devReg >> 8 ) & 0x00ff );
327327 return readRegisterRegionAnyAddress ((uint8_t *)&devReg, 2 , data, numBytes, readBytes);
328328}
0 commit comments