Waveshare E-Paper 1.54: Refresh-Probleme

OP (Firma: Q3) #7087684
Lesenswert?

Ich möchte für ein Handmessgerät evaluieren, ob ein E-Paper-Display von 
Waveshare 1.54' (V2) geeignet ist. Ich habe damit an einem ESP32 
herumprobiert. Prinzipiell scheint es zu funktionieren, aber das 
Geflacker übers ganze Display nervt, obwohl es angeblich auch partial 
refresh können soll.
Außerdem habe ich zwar eine grundsätzliche Ahnung - nein eher nur Gefühl 
- wie das mit der Begerenzung der Displayfläche für parziellen Refresh 
funktionieren könnte, aber meine Versuche zeigen irgendwie das 
Gegenteil. Ich konnte auch keine verständliche Doku finden. Im Web 
gefundener Democode läuft oft nicht. :-(

Folgender Code soll einfach nur eine Zahl hochzählen und in der linken 
oberen Ecke anzeigen, nur mit parziellem Refresh. Doch was passiert bei 
JEDEM Loop?

- das gesamte Display wird schwarz
- in dem schwarzen Display wird links oben ein 32x32 Feld weiß
- das gesamt Display wird Weiß
- in dem weißen Display wird links oben ein 32x32 Feld schwarz
- es erscheint die Zahl in Weiß
- das 32x32 Feld wird Weiß, die Zahl steht nun endlich da in Schwarz

Dass dies maximal ineffizient ist und scheisse aussieht kann sicher 
jeder nachvollziehen. Kann mir jemand bitte kurz erklären, wo in dem 
Code sich der Denkfehler verbirgt? Danke.
1
#include <SPI.h>
2
#include "epd1in54_V2.h" //von AZ delivery
3
#include "epdpaint.h"
4
#define COLORED     0
5
#define UNCOLORED   1
6

7
int cnt = 0;
8
String tstr = "";
9
unsigned char image[1000];
10
Paint paint(image, 32, 32);
11
Epd epd(33, 25, 26, 27); //pins festlegen
12

13
void setup()
14
{
15
  epd.LDirInit();
16
  epd.Clear(); 
17
}
18

19
void loop()
20
{
21
    cnt++;
22
    tstr = String(cnt);
23
    paint.SetWidth(32);
24
    paint.SetHeight(32);
25
    paint.Clear(UNCOLORED);
26
    paint.DrawStringAt(0,0, tstr.c_str(), &Font24, COLORED);
27
    epd.SetFrameMemory(paint.GetImage(), 0, 0, 32, 32);
28
    epd.DisplayFrame();
29
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren