#include #include "MikuDuino.h" #include "Wire.h" #include "MikuOled.h" uint8 Miku_Oled::buf[OLED_BUFFER_LENGTH+1]; const char logo[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xF0,0xFC,0xFC,0xF8,0x00,0x00,0xE0,0xFC,0xFC,0xF8,0x00,0x00,0x00,0x00, 0xDC,0x9C,0x00,0x84,0xFE,0xF8,0x00,0x00,0x80,0xC0,0x00,0x00,0xC0,0xC0,0x00,0x00, 0x00,0xC0,0xC0,0x00,0x00,0xFC,0xFC,0x18,0x18,0x38,0x30,0x70,0xE0,0xC0,0x00,0x00, 0xC0,0xC0,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0xDC,0xDC,0x00,0x00,0xC0,0xC0,0x80, 0xC0,0xC0,0xC0,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x04,0x0C, 0xFC,0x04,0x04,0x00,0xF8,0x3C,0xE0,0x78,0x3C,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x3E,0x3F,0x03,0x01,0x1F,0x3F,0x3F,0x0F,0x01,0x01,0x1F,0x3F,0x30,0x00,0x1F, 0x3F,0x01,0x00,0x3F,0x3F,0x0F,0x0E,0x0F,0x1D,0x38,0x30,0x00,0x1F,0x3F,0x38,0x38, 0x38,0x3F,0x3F,0x00,0x00,0x1F,0x3F,0x38,0x38,0x38,0x38,0x1C,0x1F,0x0F,0x00,0x03, 0x1F,0x3F,0x38,0x38,0x38,0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x00,0x00,0x3F,0x3F,0x03, 0x01,0x01,0x3F,0x3F,0x00,0x1F,0x3F,0x39,0x39,0x39,0x1F,0x0F,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x40,0xC0,0xC0,0x40,0x40,0x00,0x80,0xC0,0x00,0x80,0xC0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,0xFC,0xFC,0xFC,0xF8,0xC0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0xFC,0xFC,0xFC,0xF8,0xC0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x38,0x7C,0x7C,0x7C,0x38,0x10,0x00,0x00,0x00,0xFC,0xFE, 0xFE,0xFE,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF8,0xF8,0xFC,0xFC,0x7C,0x7C,0x7C,0x7C,0x7C,0xF8,0xF8,0xF8, 0xF0,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x38,0x7C,0x7C,0x7C,0x38,0x10,0x00,0x00, 0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x03,0x0E,0x07,0x03,0x0F,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8, 0x00,0x00,0x00,0x80,0xF0,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0xFC,0xFC,0x30,0x00,0x00,0x00,0x00,0xFF,0xFF, 0xFF,0xFF,0xFF,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x38,0x00,0x00, 0xF0,0xFC,0xFC,0xFC,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFC,0xFC,0xFC,0xFC, 0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xF0,0xF9, 0xFF,0xFF,0x7F,0x3F,0x00,0x00,0x00,0x00,0xF8,0xFC,0xFC,0xFC,0x30,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF0,0xFE,0xFF,0xFF,0xFF,0x3F,0x03,0x00,0x0F,0xFF,0xFF,0xFF, 0xFF,0xF8,0xFC,0xFF,0xFF,0xFF,0x1F,0x03,0x00,0x03,0x7F,0xFF,0xFF,0xFF,0xFC,0xC0, 0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, 0xFF,0xFF,0xFF,0x3E,0x3F,0x3F,0x7F,0xFF,0xFF,0xFB,0xE1,0xC0,0x80,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1E,0x3F,0x3F,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x1F, 0x3F,0x3F,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x3F,0x7F,0x7F,0x7F, 0x3C,0x00,0x00,0x00,0x00,0x1F,0x3F,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F, 0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x1F,0x3F,0x3F,0x3E,0x1C,0x00, 0x00,0x0F,0x1F,0x1F,0x3F,0x3E,0x3E,0x3E,0x3E,0x3E,0x1E,0x1F,0x3F,0x3F,0x3F,0x1F, 0x00,0x00,0x00,0x1F,0x3F,0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3F,0x3F,0x1F,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; unsigned char initcode[] = { 0x00, 0xAE, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0xA1, 0xC8, 0xA6, 0xD5, 0x80, 0xDA, 0x12, 0x81, 0x00, 0xB0, 0xA4, 0xDB, 0x40, 0x20, 0x00, 0x00, 0x10, 0x8D, 0x14, 0x2E, 0xA6, 0xAF }; unsigned char poscode[] = { 0x00, 0x20, 0x00, 0xB0, 0x00, 0x10 }; Miku_Oled::Miku_Oled() { buffer=buf+1; buf[0]=0x40; showLogo(); } void Miku_Oled::oled_sendCommand(int c) { Wire.write((uint8)0,(uint8)c); } void Miku_Oled::begin() { Wire.begin(); Wire.beginTransmission(0x3c); Wire.write(initcode,29); Wire.endTransmission(); } void Miku_Oled::display() { int k; //for(k=0;k<1000;k++) //{ Wire.beginTransmission(0x3c); Wire.write(poscode,6); Wire.write(buf,1025); Wire.endTransmission(); //} } void Miku_Oled::shift() { int i; int j; int t; int m; int buftemp; for(i=0;i<1024;i+=128) { t=1; if (i<256) t=2; for(m=0;m