Skip to content

Conversation

@AndrewCapon
Copy link
Contributor

@AndrewCapon AndrewCapon commented Apr 29, 2024

This also includes: #624

Added DMA transfers for data transfers to reduce cpu overhead.

display.h has a new pure virtual bool UpdateFinished(), returns true if the update has finished.

oled_display.h implements UpdateFinished() and calls the driver.

SSD130x4WireSpiTransport has been altered to support basic chained DMA via the finished callback, Config now has a useDma flag to enable DMA.

Some times:

Using SPI Prescaler = 2

Blocking
  1492.6 us total update time and Cpu

Dma
  Total update time = 1549.3us
  Cpu = (12.9us*16) + 0.3us = 206.7us

@github-actions
Copy link

github-actions bot commented Apr 29, 2024

Test Results

150 tests  ±0   150 ✅ ±0   0s ⏱️ ±0s
  1 suites ±0     0 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit 432e4de. ± Comparison against base commit c695718.

♻️ This comment has been updated with latest results.

@stephenhensley
Copy link
Collaborator

Thanks for the contribution. This is a very welcome addition!

I briefly tested this on some hardware by modifying the included OLED_SSD130x4WireSPI example.

There were a few minor merge conflicts related to the dsy_pin -> Pin migration.
So I went ahead and fixed those up, and then retested before merging.

@stephenhensley stephenhensley merged commit 785ebb5 into electro-smith:master Jun 16, 2025
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants