Will do. May start off with issues and then maybe do PRs... But there are other areas I would like to work on, like SerialX objects, but that is different story.
Question: what granularity do you want for issues? I know with the IDE2 stuff, they prefer granularity of one issue.
What happens if a higher priority interrupt happens, while doing a line:
R_PORT0->PCNTR1 &= ~((uint32_t) LED_MATRIX_PORT0_MASK);
That after it does the read, another ISR happens which lets say changes the state of pin 15 (Wifi version) from input to output or output to input.
After that ISR completes you will then wipe out that change.
Probably won't happen very often, but I have been hit by similar things in the past.
Add a way to if you have turned on the timer and have not set specific frame/sequence to be used, to allow the user code to manipulate the frame data.
Have a way to maybe logically set the data order. For example a way to say, I wish that the frame buffer was 12 bytes of data, in column order. Would be nice for example for scrolling fonts and the like. Where per each frame, you could simply memcpy data from col1 to col 0, and then add in new byte...
Have way to set the timer to some specific speed, like maybe frames per second...
I know that there's some other work going on with the LED Matrix, because text scroll is broken.
If you post issues and PRs in the GH repo the ones working on it will better answer or give directions.
I have been meaning to have some fun with it but have been hit by a dozen other things so I guess fun is over for me
This has been fascinating reading although way over my head since you all are orders of magnitude above my level.
So not sure which comment exactly to mark as the "solution" but I am trying code out and learning a lot.
So is it possible to virtually "turn on" a matrix LED but reduce the number of times it is 'blinked' per second giving you a few levels of brightness control?
Not quite.
You are limited to turning one LED on and making it bright. But once you set the matrix scanning you can't change the brightness because that depends on not the speed of the refresh but on the duty cycle of the refresh, that is the ratio of on to off time for any LED in the matrix.
This is in effect fixed by the job it is supposed to be doing. That is scanning the whole of the matrix.
It would be possible to refresh just a part of the matrix and have that part brighter than when it is refreshing the whole of the matrix, but we are not considering this as an option yet. Would that be of interest if it were an option?