mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/sta-core.git
synced 2025-06-13 01:55:59 +00:00
I2C with debugging statements
This commit is contained in:
parent
ec945a7ca1
commit
a12593051e
@ -24,31 +24,38 @@ namespace sta
|
|||||||
|
|
||||||
void ArduinoI2C::transfer(uint8_t value)
|
void ArduinoI2C::transfer(uint8_t value)
|
||||||
{
|
{
|
||||||
Wire.beginTransmission((uint8_t)address_);
|
Wire.beginTransmission(address_);
|
||||||
Wire.write(value);
|
Wire.write(value);
|
||||||
Wire.endTransmission(true);
|
uint8_t code = Wire.endTransmission();
|
||||||
|
|
||||||
|
if (code != 0)
|
||||||
|
STA_DEBUG_PRINTF("Transfer result: %d", code);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ArduinoI2C::transfer16(uint16_t value)
|
void ArduinoI2C::transfer16(uint16_t value)
|
||||||
{
|
{
|
||||||
Wire.beginTransmission((uint8_t)address_);
|
Wire.beginTransmission(address_);
|
||||||
Wire.write(value);
|
Wire.write(value);
|
||||||
Wire.endTransmission(true);
|
uint8_t code = Wire.endTransmission();
|
||||||
|
|
||||||
|
if (code != 0)
|
||||||
|
STA_DEBUG_PRINTF("Transfer result: %d", code);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ArduinoI2C::transfer(const uint8_t * buffer, size_t size)
|
void ArduinoI2C::transfer(const uint8_t * buffer, size_t size)
|
||||||
{
|
{
|
||||||
Wire.beginTransmission((uint8_t)address_);
|
Wire.beginTransmission(address_);
|
||||||
Wire.write(buffer, size);
|
Wire.write(buffer, size);
|
||||||
Wire.endTransmission();
|
uint8_t code = Wire.endTransmission();
|
||||||
|
|
||||||
|
if (code != 0)
|
||||||
|
STA_DEBUG_PRINTF("Transfer result: %d", code);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ArduinoI2C::receive(uint8_t * buffer, size_t size)
|
void ArduinoI2C::receive(uint8_t * buffer, size_t size)
|
||||||
{
|
{
|
||||||
size_t count = Wire.requestFrom((uint8_t)address_, (uint8_t)size);
|
size_t count = Wire.requestFrom((uint8_t)address_, (uint8_t)size);
|
||||||
|
|
||||||
STA_DEBUG_PRINTF("Receiving %d bytes", count);
|
|
||||||
|
|
||||||
for (size_t i = 0; i < min(size, count); ++i)
|
for (size_t i = 0; i < min(size, count); ++i)
|
||||||
{
|
{
|
||||||
buffer[i] = Wire.read();
|
buffer[i] = Wire.read();
|
||||||
@ -57,13 +64,17 @@ namespace sta
|
|||||||
|
|
||||||
void ArduinoI2C::fill(uint8_t value, size_t count)
|
void ArduinoI2C::fill(uint8_t value, size_t count)
|
||||||
{
|
{
|
||||||
|
Wire.beginTransmission(address_);
|
||||||
// Initialize a buffer of size count and fill it with the value.
|
// Initialize a buffer of size count and fill it with the value.
|
||||||
uint8_t buffer[count];
|
uint8_t buffer[count];
|
||||||
memset(buffer, value, count);
|
memset(buffer, value, count);
|
||||||
|
|
||||||
Wire.beginTransmission((uint8_t)address_);
|
|
||||||
Wire.write(buffer, count);
|
Wire.write(buffer, count);
|
||||||
Wire.endTransmission();
|
|
||||||
|
uint8_t code = Wire.endTransmission();
|
||||||
|
|
||||||
|
if (code != 0)
|
||||||
|
STA_DEBUG_PRINTF("Transfer result: %d", code);
|
||||||
}
|
}
|
||||||
|
|
||||||
ArduinoI2CDevice::ArduinoI2CDevice(I2C * intf, uint8_t address, bool master /* = true */, bool blocking /* = true */)
|
ArduinoI2CDevice::ArduinoI2CDevice(I2C * intf, uint8_t address, bool master /* = true */, bool blocking /* = true */)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user