// Written by Nick Gammon // May 2012 #include #include template unsigned int I2C_writeAnything (const T& value) { Wire.write((byte *) &value, sizeof (value)); return sizeof (value); } // end of I2C_writeAnything template unsigned int I2C_readAnything(T& value) { byte * p = (byte*) &value; unsigned int i; for (i = 0; i < sizeof value; i++) *p++ = Wire.read(); return i; } // end of I2C_readAnything