Public Access
Fix dense images on the Nano and the off image in slow mode
- Nano: B data is drawn fast enough for the serial line. A hex digit arrives every 87 us; with a division and four drawPixel() calls per digit a lit digit took about 105 us, so dense frames (all yellow, the panda bitmap) overflowed the 64 byte receive buffer: frames not shown or wrong, "Line too long", frame check repairs that failed the same way. Now the parser counts columns and rows and BROSE9323::drawDots() sets the 4 dots (about 20 us). - ESP32: Power off and the start of the night draw the off image also when slow mode had the power off already (it powers on for it, once) - Tests: drawDots() against drawPixel(), off image in slow mode - Version 2.19.3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
41af2944bc
commit
7a28e34380
13 files changed
+130
-17
No files matched your search
@@ -27,6 +27,14 @@ public:
|
||||
void begin() { log("begin"); }
|
||||
void display(bool force = false, bool instant = false) { log("display", force, instant); }
|
||||
void drawPixel(int16_t x, int16_t y, uint16_t color) { log(direct ? "directPixel" : "pixel", x, y, color); }
|
||||
// Recorded as the pixel calls it stands for (the real one is tested in test_driver)
|
||||
void drawDots(int16_t x, int16_t y, uint8_t bits, bool color)
|
||||
{
|
||||
log("dots", x, y, bits);
|
||||
for (int i = 0; i < 4; i++)
|
||||
if (bits & (8 >> i))
|
||||
drawPixel(x + i, y, color);
|
||||
}
|
||||
void fillScreen(uint16_t color) { log("fill", color); }
|
||||
void setDirect(bool d) { direct = d; }
|
||||
void setTiming(uint16_t t) { log("timing", t); }
|
||||
|
||||
Reference in new issue
Block a user