2020-09-03

This commit is contained in:
wangkg 2020-09-04 15:30:45 +08:00
commit 751a9fb93f
570 changed files with 50854 additions and 16474 deletions

View file

@ -62,7 +62,7 @@ int Epd::Init(void) {
WaitUntilIdle();
SendCommand(PLL_CONTROL);
SendData(0x3c);
SendData(0x3A);
SendCommand(TEMPERATURE_CALIBRATION);
SendData(0x00);
@ -163,6 +163,64 @@ void Epd::DisplayFrame(const unsigned char** image_data) {
WaitUntilIdle();
}
void Epd::Clean(void) {
SendCommand(DATA_START_TRANSMISSION_1);
for (long i = 0; i < 122880; i++) {
SendData(0x33);
}
SendCommand(DISPLAY_REFRESH);
DelayMs(100);
WaitUntilIdle();
}
void Epd::DisplayOneQuarterFrame(const unsigned char* image_data) {
unsigned char temp1, temp2;
SendCommand(DATA_START_TRANSMISSION_1);
for (long i = 0; i < 192; i++) {
for (long k = 0; k < 80; k++) {
temp1 = pgm_read_byte(image_data + i*80 + k);
for (unsigned char j = 0; j < 4; j++) {
if ((temp1 & 0xC0) == 0xC0) {
temp2 = 0x03; // white
} else if ((temp1 & 0xC0) == 0x00) {
temp2 = 0x00; // black
} else {
temp2 = 0x04; // red
}
temp2 <<= 4;
temp1 <<= 2;
j++;
if((temp1 & 0xC0) == 0xC0) {
temp2 |= 0x03; // white
} else if ((temp1 & 0xC0) == 0x00) {
temp2 |= 0x00; // black
} else {
temp2 |= 0x04; // red
}
temp1 <<= 2;
SendData(temp2);
}
}
for (long k = 0; k < 160; k++) { // 1/4 show white
SendData(0x33);
}
}
for (long i = 0; i < 192; i++) {
for (long k = 0; k < 160; k++) { // 1/4 show red
SendData(0x44);
}
for (long k = 0; k < 160; k++) { // 1/4 show black
SendData(0x00);
}
}
SendCommand(DISPLAY_REFRESH);
DelayMs(100);
WaitUntilIdle();
}
/**
* @brief: After this command is transmitted, the chip would enter the
* deep-sleep mode to save power.

View file

@ -83,6 +83,8 @@ public:
void WaitUntilIdle(void);
void Reset(void);
void DisplayFrame(const unsigned char** image_data);
void DisplayOneQuarterFrame(const unsigned char* image_data);
void Epd::Clean(void);
void SendCommand(unsigned char command);
void SendData(unsigned char data);
void Sleep(void);

View file

@ -36,7 +36,8 @@ void setup() {
Serial.print("e-Paper init failed");
return;
}
epd.DisplayFrame(IMAGE_DATA);
//epd.Clean();
epd.DisplayOneQuarterFrame(IMAGE_DATA);
}
void loop() {

View file

@ -26,7 +26,7 @@
*/
#include "epdif.h"
#include <SPI.h>
#include <spi.h>
EpdIf::EpdIf() {
};
@ -56,9 +56,11 @@ int EpdIf::IfInit(void) {
pinMode(CS_PIN, OUTPUT);
pinMode(RST_PIN, OUTPUT);
pinMode(DC_PIN, OUTPUT);
pinMode(BUSY_PIN, INPUT);
pinMode(BUSY_PIN, INPUT);
SPI.begin();
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
return 0;
}

View file

@ -28,7 +28,7 @@
#ifndef EPDIF_H
#define EPDIF_H
#include <Arduino.h>
#include <arduino.h>
// Pin definition
#define RST_PIN 8

File diff suppressed because it is too large Load diff

View file

@ -22,9 +22,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
extern const unsigned char *IMAGE_DATA[2];
extern const unsigned char IMAGE_DATA_1[];
extern const unsigned char IMAGE_DATA_2[];
extern const unsigned char IMAGE_DATA[];
/* FILE END */