Use an easy I2C class to communicate with an EEPROM chip
cmake_minimum_required(VERSION 3.12)
project(PropWareI2C_Demo)
create_simple_executable(${PROJECT_NAME} PropWareI2C_Demo.cpp)
static const uint8_t MAGIC_ARRAY_1[] = "DCBA0";
static const size_t ARRAY_SIZE_1 = sizeof(MAGIC_ARRAY_1);
static const uint8_t SHIFTED_DEVICE_ADDR =
EEPROM_ADDR << 1;
static const uint16_t TEST_ADDRESS = 32 * 1024;
const I2CMaster pwI2C;
pwOut <<
"EEPROM ack = " << pwI2C.ping(SHIFTED_DEVICE_ADDR) <<
'\n';
bool success = pwI2C.put(SHIFTED_DEVICE_ADDR, TEST_ADDRESS, MAGIC_ARRAY_1, ARRAY_SIZE_1);
pwOut <<
"Put status: " << success <<
'\n';
while (!pwI2C.ping(SHIFTED_DEVICE_ADDR));
uint8_t buffer[ARRAY_SIZE_1];
success &= pwI2C.get(SHIFTED_DEVICE_ADDR, TEST_ADDRESS, buffer, ARRAY_SIZE_1);
pwOut <<
"Get status: " << success <<
'\n';
pwOut <<
"Returned string = '" << (
char *) buffer <<
"'\n";
return 0;
}