Waveshare 4.2in e-Paper ошибка в библиотеке от производителя

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Дисплей не очень популярен, но вдруг кто наступит на граблю ... выложу, чтобы по названию дисплея могли найти.

Производитель хорошо поддерживает продукт, очень много всего выложил - и даташит, и библиотеки для разных платформ, молодцы.

При экспериментах, обнаружилась небольшая ошибка в библиотеке.

Чуть упростил их же пример и сделал вот такой:

#include <SPI.h>
#include "epd4in2.h"
#include "epdpaint.h"

#define COLORED     0
#define UNCOLORED   1

void setup() {
	Epd epd;
	epd.Init();
	
	epd.ClearFrame();
	unsigned char image[1500];
	Paint paint(image, 400, 28);
	paint.SetWidth(32);
	paint.SetHeight(32);
	
	paint.Clear(UNCOLORED);
	paint.DrawRectangle(0, 0, 31, 31, COLORED);
	paint.DrawLine(0, 0, 31, 31, COLORED);
	paint.DrawLine(31, 0, 0, 31, COLORED);
	epd.SetPartialWindow(paint.GetImage(), 32, 32, paint.GetWidth(), paint.GetHeight());
	epd.SetPartialWindow(paint.GetImage(), 264, 248, paint.GetWidth(), paint.GetHeight());
	epd.DisplayFrame();
	
	epd.Sleep();
}

void loop(void) {}

Т.е. создаём картинку - квадратный конвертик и в строках №№ 22 и 23 выводим его приблизительно в верхнем левом углу экрана (22) и в правом нижнем (23).

Должно получиться вот так:

а получается, к сожалению, вот так

Для исправления, нужно полезть в файл epd4in2.cpp библиотеки, найти там строки 

    SendData(((x & 0xf8) + w  - 1) >> 8);
    SendData(((x & 0xf8) + w  - 1) | 0x07);

у меня они №№ 117 и 118 и исправить их на

    SendData(((x & 0xfff8) + w  - 1) >> 8);
    SendData(((x & 0xfff8) + w  - 1) | 0x07);

Всё. Проблема решена.

Напишу в Waveshare, посмотрим, отреагируют ли.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Поступила реакция от Waveshare

Very thanks for your feedback. As a reward, I can apply a discount of one product for you. How about contacting me when you want to make your next order?

Однако, на гитхабе пока не поправили.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

Поступила реакция от Waveshare

Ну хоть реагируют, и то хорошо. А вот поправят ли на гите - вопрооос :)