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

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.