Solo por curiosidad, me gustaría escribir mi propio controlador SSD1306 I2C con pantalla oled utilizando arduino nano board y atmel studio 7.
Analicé la inicialización de Adafruit I2C que envía el byte 0x00 después de enviar la dirección de esclavo 0x78.
Leí la hoja de datos del SSD1306 pero algo no me queda claro. Se trata de bit7 y bit6 de cada byte recibido.
Los estados de la hoja de datos:
-
Si el bit Co (bit7) está configurado como "0" lógico, la transmisión de la siguiente información solo contendrá bytes de datos.
-
El bit D / C # (bit6) determina que el siguiente byte de datos se actúa como un comando o un dato. Si el bit D / C # se establece en la lógica "0", define el siguiente byte de datos como un comando. Si el bit D / C # se establece en la lógica "1", define el siguiente byte de datos como un dato que se almacenará en la GDDRAM. El puntero de dirección de columna GDDRAM se incrementará en uno automáticamente después de cada escritura de datos. "
Mi pregunta es: ¿qué sucede si ambos bits se ponen a cero? Parece una contradicción.
- bit7 es cero: por lo tanto, los siguientes databytes deberían ser databytes no relacionados con la memoria de visualización
- bit6 es cero: por lo tanto, el siguiente databyte será un comando
Parece que a partir de la inicialización de Adafruit el próximo byte será un comando ...
Espero que alguien pueda ayudarme.