Nathan Yonkee
/
OLED_128x64_I2C
Seeed Studio's 0.96" OLED module
Fork of SSD1308_128x64_I2C by
Diff: SSD1308.cpp
- Revision:
- 10:74ef7544744e
- Parent:
- 7:dcff685d41a5
--- a/SSD1308.cpp Thu Apr 27 16:06:54 2017 -0600 +++ b/SSD1308.cpp Thu Jun 22 12:53:07 2017 -0600 @@ -62,7 +62,7 @@ *@param I2C &i2c reference to i2c *@param uint8_t deviceAddress slaveaddress */ -SSD1308::SSD1308(I2C &i2c, uint8_t deviceAddress) : _i2c(i2c) { +SSD1308::SSD1308(I2C * i2c, uint8_t deviceAddress) : _i2c(i2c) { _writeOpcode = deviceAddress & 0xFE; // low order bit = 0 for write _readOpcode = deviceAddress | 0x01; // low order bit = 1 for read @@ -113,13 +113,13 @@ setPageAddress(0, MAX_PAGE); // all pages setColumnAddress(0, MAX_COL); // all columns - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); for (int i=0; i<(PAGES * COLUMNS); i++) { - _i2c.write(0x00); // Write Data + _i2c->write(0x00); // Write Data } - _i2c.stop(); + _i2c->stop(); //setDisplayOn(); } @@ -169,13 +169,13 @@ setPageAddress(start_page, end_page); // set page window setColumnAddress(start_col, end_col); // set column window - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); for (int i=0; i<count; i++) { - _i2c.write(pattern); // Write Data + _i2c->write(pattern); // Write Data } - _i2c.stop(); + _i2c->stop(); //setDisplayOn(); } @@ -224,13 +224,13 @@ setPageAddress(start_page, end_page); // set page window setColumnAddress(start_col, end_col); // set column window - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); for (int i=0; i<count; i++) { - _i2c.write(data[i]); // Write Data + _i2c->write(data[i]); // Write Data } - _i2c.stop(); + _i2c->stop(); //setDisplayOn(); } @@ -304,25 +304,25 @@ setPageAddress(page, page); setColumnAddress(col, MAX_COL); - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); - _i2c.write(PRG_LEFT_EDGE); // Write Data + _i2c->write(PRG_LEFT_EDGE); // Write Data for (uint8_t col = 0; col < scale_value; col++) { - _i2c.write(PRG_ACTIVE); // Write Data + _i2c->write(PRG_ACTIVE); // Write Data } - _i2c.write(PRG_ACTIVE); // Write Data + _i2c->write(PRG_ACTIVE); // Write Data for (uint8_t col = (scale_value+1); col < PRG_MAX_SCALE; col++) { - _i2c.write(PRG_NOT_ACTIVE); // Write Data + _i2c->write(PRG_NOT_ACTIVE); // Write Data } - _i2c.write(PRG_RIGHT_EDGE); // Write Data + _i2c->write(PRG_RIGHT_EDGE); // Write Data - _i2c.stop(); + _i2c->stop(); //setDisplayOn(); } @@ -385,25 +385,25 @@ setPageAddress(page, page); setColumnAddress(col, MAX_COL); - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); - _i2c.write(PRG_LEFT_EDGE); // Write Data + _i2c->write(PRG_LEFT_EDGE); // Write Data for (uint8_t col = 0; col < scale_value; col++) { - _i2c.write(PRG_NOT_ACTIVE); // Write Data + _i2c->write(PRG_NOT_ACTIVE); // Write Data } - _i2c.write(PRG_ACTIVE); // Write Data at active meterlevel + _i2c->write(PRG_ACTIVE); // Write Data at active meterlevel for (uint8_t col = scale_value+1; col < PRG_MAX_SCALE; col++) { - _i2c.write(PRG_NOT_ACTIVE); // Write Data + _i2c->write(PRG_NOT_ACTIVE); // Write Data } - _i2c.write(PRG_RIGHT_EDGE); // Write Data + _i2c->write(PRG_RIGHT_EDGE); // Write Data - _i2c.stop(); + _i2c->stop(); //setDisplayOn(); } @@ -492,16 +492,16 @@ databytes[0] = COMMAND_MODE; databytes[1] = command; - _i2c.write(_writeOpcode, databytes, 2); // Write command + _i2c->write(_writeOpcode, databytes, 2); // Write command #else - _i2c.start(); - _i2c.write(_writeOpcode); + _i2c->start(); + _i2c->write(_writeOpcode); - _i2c.write(COMMAND_MODE); - _i2c.write(command); // Write Command + _i2c->write(COMMAND_MODE); + _i2c->write(command); // Write Command - _i2c.stop(); + _i2c->stop(); #endif } @@ -518,18 +518,18 @@ databytes[1] = command; databytes[2] = COMMAND_MODE; databytes[3] = param1; - _i2c.write(_writeOpcode, databytes, 4); // Write command + _i2c->write(_writeOpcode, databytes, 4); // Write command #else - _i2c.start(); - _i2c.write(_writeOpcode); + _i2c->start(); + _i2c->write(_writeOpcode); - _i2c.write(COMMAND_MODE); - _i2c.write(command); // Write Command - _i2c.write(COMMAND_MODE); - _i2c.write(param1); // Write Param1 + _i2c->write(COMMAND_MODE); + _i2c->write(command); // Write Command + _i2c->write(COMMAND_MODE); + _i2c->write(param1); // Write Param1 - _i2c.stop(); + _i2c->stop(); #endif } @@ -548,19 +548,19 @@ databytes[3] = param1; databytes[4] = COMMAND_MODE; databytes[5] = param2; - _i2c.write(_writeOpcode, databytes, 6); // Write command + _i2c->write(_writeOpcode, databytes, 6); // Write command #else - _i2c.start(); - _i2c.write(_writeOpcode); + _i2c->start(); + _i2c->write(_writeOpcode); - _i2c.write(COMMAND_MODE); - _i2c.write(command); // Write Command - _i2c.write(COMMAND_MODE); - _i2c.write(param1); // Write Param1 - _i2c.write(COMMAND_MODE); - _i2c.write(param2); // Write Param2 + _i2c->write(COMMAND_MODE); + _i2c->write(command); // Write Command + _i2c->write(COMMAND_MODE); + _i2c->write(param1); // Write Param1 + _i2c->write(COMMAND_MODE); + _i2c->write(param2); // Write Param2 - _i2c.stop(); + _i2c->stop(); #endif } @@ -587,25 +587,25 @@ databytes[9] = param4; databytes[10] = COMMAND_MODE; databytes[11] = param5; - _i2c.write(_writeOpcode, databytes, 12); // Write command + _i2c->write(_writeOpcode, databytes, 12); // Write command #else - _i2c.start(); - _i2c.write(_writeOpcode); + _i2c->start(); + _i2c->write(_writeOpcode); - _i2c.write(COMMAND_MODE); - _i2c.write(command); // Write Command - _i2c.write(COMMAND_MODE); - _i2c.write(param1); // Write Param1 - _i2c.write(COMMAND_MODE); - _i2c.write(param2); // Write Param2 - _i2c.write(COMMAND_MODE); - _i2c.write(param3); // Write Param3 - _i2c.write(COMMAND_MODE); - _i2c.write(param4); // Write Param4 - _i2c.write(COMMAND_MODE); - _i2c.write(param5); // Write Param5 + _i2c->write(COMMAND_MODE); + _i2c->write(command); // Write Command + _i2c->write(COMMAND_MODE); + _i2c->write(param1); // Write Param1 + _i2c->write(COMMAND_MODE); + _i2c->write(param2); // Write Param2 + _i2c->write(COMMAND_MODE); + _i2c->write(param3); // Write Param3 + _i2c->write(COMMAND_MODE); + _i2c->write(param4); // Write Param4 + _i2c->write(COMMAND_MODE); + _i2c->write(param5); // Write Param5 - _i2c.stop(); + _i2c->stop(); #endif } @@ -635,27 +635,27 @@ databytes[11] = param5; databytes[12] = COMMAND_MODE; databytes[13] = param6; - _i2c.write(_writeOpcode, databytes, 14); // Write command + _i2c->write(_writeOpcode, databytes, 14); // Write command #else - _i2c.start(); - _i2c.write(_writeOpcode); + _i2c->start(); + _i2c->write(_writeOpcode); - _i2c.write(COMMAND_MODE); - _i2c.write(command); // Write Command - _i2c.write(COMMAND_MODE); - _i2c.write(param1); // Write Param1 - _i2c.write(COMMAND_MODE); - _i2c.write(param2); // Write Param2 - _i2c.write(COMMAND_MODE); - _i2c.write(param3); // Write Param3 - _i2c.write(COMMAND_MODE); - _i2c.write(param4); // Write Param4 - _i2c.write(COMMAND_MODE); - _i2c.write(param5); // Write Param5 - _i2c.write(COMMAND_MODE); - _i2c.write(param6); // Write Param6 + _i2c->write(COMMAND_MODE); + _i2c->write(command); // Write Command + _i2c->write(COMMAND_MODE); + _i2c->write(param1); // Write Param1 + _i2c->write(COMMAND_MODE); + _i2c->write(param2); // Write Param2 + _i2c->write(COMMAND_MODE); + _i2c->write(param3); // Write Param3 + _i2c->write(COMMAND_MODE); + _i2c->write(param4); // Write Param4 + _i2c->write(COMMAND_MODE); + _i2c->write(param5); // Write Param5 + _i2c->write(COMMAND_MODE); + _i2c->write(param6); // Write Param6 - _i2c.stop(); + _i2c->stop(); #endif } @@ -669,14 +669,14 @@ // Note this original code is not correct, continuationbit is set, // so COMMAND_MODE must be repeated before each databyte that serves as parameter! - _i2c.start(); - _i2c.write(_writeOpcode); + _i2c->start(); + _i2c->write(_writeOpcode); for (int i=0; i<len ; i++) { - _i2c.write(COMMAND_MODE); - _i2c.write(commands[i]); // Write Commands + _i2c->write(COMMAND_MODE); + _i2c->write(commands[i]); // Write Commands } - _i2c.stop(); + _i2c->stop(); } #endif @@ -695,14 +695,14 @@ databytes[0] = DATA_MODE; databytes[1] = data; - _i2c.write(_writeOpcode, databytes, 2); // Write Data + _i2c->write(_writeOpcode, databytes, 2); // Write Data #else - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); - _i2c.write(data); - _i2c.stop(); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); + _i2c->write(data); + _i2c->stop(); #endif } @@ -719,13 +719,13 @@ _sendData(data[i]); // Write Data } #else - _i2c.start(); - _i2c.write(_writeOpcode); - _i2c.write(DATA_MODE); + _i2c->start(); + _i2c->write(_writeOpcode); + _i2c->write(DATA_MODE); for (int i=0; i<len ; i++) { - _i2c.write(data[i]); // Write Data + _i2c->write(data[i]); // Write Data } - _i2c.stop(); + _i2c->stop(); #endif }