#include #include "iic.h" #include "log.h" #include "tool.h" uint8_t CLK_Pin(uint8_t l) { // LOGT("CLK", "P:%d", l); return l; } uint8_t SDA_Set(uint8_t l) { // LOGT("SDA", "P:%d", l); return l; } uint8_t SDA_Mode(uint8_t l) { if (l) { // LOGT("SDA", "M:IN"); } else { // LOGT("SDA", "M:OUT"); } return l; } uint8_t SDA_Read() { uint8_t l = rand() % 2; // LOGT("SDA", "P:%d", l); return l; } void Test_iic() { SW_Dev_IIC dev = { .CLK_SET = CLK_Pin, .SDA_SET = SDA_Set, .SDA = SDA_Read, .SDA_MODE = SDA_Mode, .ADD = 0x34 }; uint8_t internalAddress = 0x56; uint32_t len = 64; uint8_t writeData[len]; uint8_t readData[len]; range(i, len) { writeData[i] = rand() % 200; } foreach(i in writeData) { } PRINT_ARRAY(writeData, "%3d", 16); Buf_Print(" TX", writeData, len, 16); // BufPrint(" TX", writeData, TYPE_T(writeData), len, 16); SW_IIC_WL(dev, internalAddress, writeData, len); SW_IIC_RL(dev, internalAddress, readData, len, 1); BufPrint(" RX", readData, TYPE_T(readData), len, 16); }