NeoCat / ESP32-P3RGB64x32MatrixPanel

ESP32 Arduino library for the P3 64x32 RGB matrix panels
MIT License
137 stars 30 forks source link

SPI issue, whit NRF24L01 #9

Open Vulture-in-the-woods opened 5 years ago

Vulture-in-the-woods commented 5 years ago

Hi Neocat.

First of all thank you for library, it works quite well and I've adapted it into a larger project where I use a NRF24L01 radiomodule via SPI and I would like to use that to send text and numbers to the display.

I use an ESP32 DEVKITV1 (30 pin) and besides the fact that Serial.print creates some color interference, (only used for debugging) the whole thing works.

After using the matrix.begin(); command, I can not communicate with the NRF24L01, and I suspect that the SPI is somehow used by the matrix libraries but I can not figure out how to solve it.

Can you enlighten me as of how the communication (Lat, OE CLK_RGB) works in relation to the SPI?

I've tried other libraries but I end up with the same problem. I'm really stuck and would appreciate any help I could get. I've attached the test files I use for you to see

Best regard

A lost Vulture in the Woods

for_NEOCAT.zip

NeoCat commented 5 years ago

This library is heavily using timer interrupt, and drives the GPIO's by writing to GPIO registers in the interrupt handler to generate the high frequency signal. It means that other pins (including SPI pins) values are also rewritten. To avoid rewriting these pins, SPI pins needs to be masked in the library's redraw routine using bitwise operations.

Vulture-in-the-woods commented 5 years ago

Thank you for your answer.

I do understand what you mean in principle, but I'm not skilled enough to find the exact place in all the libraries and I'm not shure exactly which bits to mask.

If you by any chance where to on day redo the code and mask the SPI bits (GPIO pins), I'm would gladly contribute with some Neo for your trouble.