I’m working on something that needs to be synchronized with other i/o and am considering adding a way of manually triggering individual frames rather than keeping the timer going. Would this be useful to anyone else? If so I’ll try to do it cleanly so it can be integrated. Does anyone have an opinion on the best interface for this? My thinking was setting the refreshRate to 0 and then a new call for displayFrame() that would either use the previous frame timings, or maybe that call should include the display time or refresh rate?..
I’m not sure what will happen if you put in a refresh rate of 0. It wasn’t designed to support that but it may do something useful.
There’s some code in SmartMatrix 3 that will blank the frame when the row circular buffer runs out of data, you could potentially use that as a way to blank the display until you need it running again. It’s the code in
rowShiftCompleteISR() that starts with
if(cbIsEmpty(&dmaBuffer)). Follow the
dmaBufferUnderrun flag for where refresh starts up again.
I’m not sure if it’s a feature that I want to merge into the SmartMatrix Library, but hopefully this helps you get what you need done.