¿Cómo usar el protocolo I2C sin librerias?

Hola, hace unos días me surgió la duda de como podría utilizar el protocolo I2C. La cosa es que intenté hacerle ingeniería inversa a la biblioteca Wire.h, pero no logré entenderlo bien por el formato en el que se escriben las bibliotecas. Si alguno sabe de algún ejemplo donde se haga lo que digo, por favor coméntemelo.

Alguien dijo una vez: ¿reinventar la rueda?

La libreria Wire encapsula la forma en la que se tienen que tratar los registros internos del microcontrolador para poder controlar el bus i2c. Ahora bien, pretendes controlar el bus i2c sin Wire, se puede perfectamente, coge el datasheet del atmega correspondiente, por ejemplo el datasheet del atmega328p. Sólo son 300 páginas de inglés técnico donde te detalla como configurar el micro. Por otro lado tendrás que aprender a integrar todo lo conocido en el IDE, ya que no es lo mismo programación AVR que programar Arduino. Y lo conseguirás.

Pero... ¿merece la pena? para eso está Wire.

Y por eso hay muchos ejemplos de I2C y todos ellos usan Wire.