How to use flipDMABuffer() #431
Unanswered
EclipseBoom
asked this question in
Q&A
Replies: 1 comment
-
someone already have a simple test sketch here #426 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Howdy. Working on a scoreboard project with a bunch of chained panels. Trying to get rid of refresh flicker by using flipDMABuffer().
Zero info on how to use the double buffer DMA feature in the docs.
Here is my mxconfig:
HUB75_I2S_CFG mxconfig( PANEL_RES_X, // module width PANEL_RES_Y, // module height PANEL_CHAIN // chain length ); mxconfig.double_buff=1;
Then the code to try and use it:
` virtualDisp->fillCircle(32, 36, 8, virtualDisp->color565(255,0,0));
virtualDisp->flipDMABuffer(); // flip to other buffer
virtualDisp->fillCircle(128, 36, 8, virtualDisp->color565(0,255,0));
} // end of setup()
void loop() {
virtualDisp->flipDMABuffer(); // show buffer 0
delay(500);
virtualDisp->flipDMABuffer(); // show buffer 1
delay(500);
}
`
So I should see a red and blue circle alternating every 1/2 second correct? I'm not clearing the screen or writing between flips.
What I get is a totally black screen no matter what I do when double_buff = 1
There is also zero documentation about this feature and actually a lot of the parameters of the HUB75 config constructor.
As of now I'll just do it like Adafruit GFX and assume only a single buffer. I'm kind of bummed because the ESP32 has plenty of RAM to do this properly but unless I'm totally doing something wrong it doesn't work (at least for me).
Beta Was this translation helpful? Give feedback.
All reactions