McpStatus readOneRegister (uint8_t i2cAdr, uint8_t reg, uint8_t &var) // Register, Zielvariable { Wire.beginTransmission(i2cAdr); // Connect Wire.write(reg); // Anfrage ab/der Register Nummer if (Wire.endTransmission() ) { // war Connect fehlerfrei? return ERROR; // I2C Busfehler ? } Wire.requestFrom(i2cAdr, 1); // n Bytes in Folge anfordern/lesen if (Wire.available() ) { // sind Daten vorhanden? var = Wire.read(); } return OK; } McpStatus writeOneRegister (uint8_t i2cAdr, uint8_t reg, uint8_t data) // Register, Wert { Wire.beginTransmission(i2cAdr); Wire.write(reg); // setzen auf Registeradresse ab der es losgehen soll Wire.write(data); // Daten in Register schreiben if (Wire.endTransmission() ) { // Byte(s) in Register schreiben return ERROR; // I2C Busfehler } return OK; } // GPA.0 ... GPA.7 => Pinnummer 0-7 // GPB.0 ... GPB.7 => Pinnummer 8-15 // *** interne Hilfsfunktionen *** // constexpr uint8_t getBitMaske(const uint8_t pin) { return (pin<8) ? (1<