mirror of
https://github.com/Makuna/NeoPixelBus.git
synced 2025-08-09 22:04:27 +02:00
Updated FAQ #5 (markdown)
@@ -9,10 +9,10 @@ The wire protocol takes 30us per pixel, plus 50us latch between updates, and a l
|
||||
Depending on the "method" used to send this data, the actual time the CPU takes will vary greatly.
|
||||
For most platforms, the CPU will be doing the work. So the cpu will consume time to do all the work except for the latching. So you end up with...
|
||||
```
|
||||
cpu microseconds = pixelcount * 30 + 10;
|
||||
cpu microseconds = pixelcount x 30 + 10;
|
||||
```
|
||||
Once its finished with raw data, it will return from 'Show()'. It does not wait on the latch time before returning, but it will wait on it if you call `Show()` again.
|
||||
For the NeoEsp8266Dma800KbpsMethod, it uses the hardware to send the data. But it does have to copy the working buffer into the DMA buffer. This copying of the buffers will also vary depending on the pixel count, but now we are talking on the order of 0.05 us per pixel if running at 80mhz. 160mhz will make it even less. Once its copied, it will return from 'Show()' to let you start preparing the next frame of data.
|
||||
Once its finished with raw data, it will return from 'Show()'. It does not wait on the latch time before returning, but it will wait on it if you call `Show()` again before the latch was finished being sent.
|
||||
For the NeoEsp8266Dma800KbpsMethod, it uses the hardware to send the data. But it still does have to copy the working buffer into the DMA buffer. This copying of the buffers will also vary depending on the pixel count, but now we are talking on the order of 0.05 us per pixel if running at 80mhz. 160mhz will make it even less. Once its copied, it will return from 'Show()' to let you start preparing the next frame of data.
|
||||
|
||||
|
||||
#### How fast can my code provide data for the NeoPixels?
|
||||
|
Reference in New Issue
Block a user