EPD display library.
Dependents: acd52832_ePaper acd52832_SAADC_Differential_input_2 acd52832_SAADC_Differential_input_EPD acd52832_Car_battery_ch ... more
Fork of GDEP015OC1 by
Diff: GDEP015OC1.cpp
- Revision:
- 16:637e8c66dee6
- Parent:
- 12:55f053e7f087
diff -r 29f6787506b7 -r 637e8c66dee6 GDEP015OC1.cpp --- a/GDEP015OC1.cpp Tue Jul 04 18:16:15 2017 +0000 +++ b/GDEP015OC1.cpp Tue Jul 04 18:18:38 2017 +0000 @@ -28,7 +28,6 @@ _cs = _dc = 0; wait_us(1); _spi.write(command); - _cs = 1; } void GDEP015OC1::_spiData(unsigned char data){ @@ -36,82 +35,12 @@ _dc = 1; wait_us(1); _spi.write(data); - _cs = 1; } void GDEP015OC1::_init(void){ - _rst = _cs = 1; - _rst = 0; - wait_ms(EPD_WAIT_CONSTANT); - _rst = 1; - wait_ms(EPD_WAIT_CONSTANT); + _rst = _cs = 1; + empty(); } - -void GDEP015OC1::initPartial(void){ - - //Driver Output control - _spiCommand(0x01); - _spiData(0xC7); // (yDot-1)%256 - _spiData(0x00); // (yDot-1)/256 - _spiData(0x00); // 0x00 - - //Softstart - _spiCommand(0x0C); - _spiData(0xD7); - _spiData(0xD6); - _spiData(0x9D); - - //VCOM setting - _spiCommand(0x2C); - _spiData(0xA8); - - //Dummy line period - _spiCommand(0x3A); - _spiData(0x1A); - - //Gate line width // 2us per line - _spiCommand(0x3B); - _spiData(0x08); - - //Set data entry mode - _spiCommand(0x11); - _spiData(0x01); //DO NOT TOUCH THIS! (MUST BE 0x01) - - //Define X display size - _spiCommand(0x44); - _spiData(0x00); - _spiData(0x18); //(xDot-1)/8 - //Define Y display size - _spiCommand(0x45); - _spiData(0xC7); //(yDot-1)%256 - _spiData(0x00); //(yDot-1)/256 - _spiData(0x00); // Was 0x2B - _spiData(0x00); // Was 0x01 - - //Define X RAM address - _spiCommand(0x4E); - _spiData(0x00); - //Define Y RAM address - _spiCommand(0x4F); - _spiData(0xC7); - _spiData(0x00); - - - //Write LUT - //_spiCommand(0x32); - for(uint8_t i = 0; i<30;i++){ - _spiData(_lutPart[i]); - } - - // Power ON - _spiCommand(0x22); - _spiData(0xC0); - _spiCommand(0x20); - - //wait_ms(1500); - - - } void GDEP015OC1::_wakeUp(bool partial){ _rst = 0; @@ -222,74 +151,27 @@ } void GDEP015OC1::write(void){ - //_wakeUp(true); + _wakeUp(true); - //Define X display size - _spiCommand(0x44); - _spiData(0x00); - _spiData(0x18); //(xDot-1)/8 - //Define Y display size - _spiCommand(0x45); - _spiData(0xC7); //(yDot-1)%256 - _spiData(0x00); //(yDot-1)/256 - _spiData(0x00); // Was 0x2B - _spiData(0x00); // Was 0x01 - - //Define X RAM address - _spiCommand(0x4E); - _spiData(0x00); - //Define Y RAM address - _spiCommand(0x4F); - _spiData(0xC7); - _spiData(0x00); - - _spiCommand(0x24); for(int16_t x=0; x>=0 && x<200; x++){ for(int16_t y=24; y>=0 && y<25; y--){ _spiData(_mirrorData(_pixelConv(_buffer, x*25+y))); - //wait_us(EPD_WAIT_CONSTANT); + wait_us(EPD_WAIT_CONSTANT); } } - - // Update Partial _spiCommand(0x22); _spiData(0x04); - _spiCommand(0x20); - _spiCommand(0xFF); - - wait_ms(500); - - //Define X display size - _spiCommand(0x44); - _spiData(0x00); - _spiData(0x18); //(xDot-1)/8 - //Define Y display size - _spiCommand(0x45); - _spiData(0xC7); //(yDot-1)%256 - _spiData(0x00); //(yDot-1)/256 - _spiData(0x00); // Was 0x2B - _spiData(0x00); // Was 0x01 + _spiCommand(0x22); + _spiData(0x08); - //Define X RAM address - _spiCommand(0x4E); - _spiData(0x00); - //Define Y RAM address - _spiCommand(0x4F); + //Update + _spiCommand(0x22); _spiData(0xC7); - _spiData(0x00); - - - _spiCommand(0x24); - for(int16_t x=0; x>=0 && x<200; x++){ - for(int16_t y=24; y>=0 && y<25; y--){ - _spiData(_mirrorData(_pixelConv(_buffer, x*25+y))); - //wait_us(EPD_WAIT_CONSTANT); - } - } + _spiCommand(0x20); - //_sleep(); + _sleep(); } void GDEP015OC1::writeFull(void){ @@ -313,7 +195,7 @@ _spiData(0xC7); _spiCommand(0x20); - //_sleep(); + _sleep(); } void GDEP015OC1::drawPixel(uint16_t startX, uint16_t startY, bool color=0){