DotStarEsp32DmaSpiMethod: adjust start+end frames to reflect bus width (#637)

This commit is contained in:
Steven Cohen
2023-02-09 20:47:26 -08:00
committed by GitHub
parent bcab173d7c
commit 7e38508ec8

View File

@@ -38,8 +38,9 @@ public:
typedef typename T_SPISPEED::SettingsObject SettingsObject; typedef typename T_SPISPEED::SettingsObject SettingsObject;
_DotStarEsp32DmaSpiMethod(uint16_t pixelCount, size_t elementSize, size_t settingsSize) : _DotStarEsp32DmaSpiMethod(uint16_t pixelCount, size_t elementSize, size_t settingsSize) :
_sizeStartFrame(4 * T_SPIBUS::ParallelBits),
_sizePixelData(pixelCount * elementSize + settingsSize), _sizePixelData(pixelCount * elementSize + settingsSize),
_sizeEndFrame((pixelCount + 15) / 16) // 16 = div 2 (bit for every two pixels) div 8 (bits to bytes) _sizeEndFrame((pixelCount + 15) / 16 * T_SPIBUS::ParallelBits) // 16 = div 2 (bit for every two pixels) div 8 (bits to bytes)
{ {
_spiBufferSize = _sizeStartFrame + _sizePixelData + _sizeEndFrame; _spiBufferSize = _sizeStartFrame + _sizePixelData + _sizeEndFrame;
@@ -235,7 +236,7 @@ private:
ESP_ERROR_CHECK(ret); ESP_ERROR_CHECK(ret);
} }
const size_t _sizeStartFrame = 4; const size_t _sizeStartFrame;
const size_t _sizePixelData; // Size of '_data' buffer below, minus (_sizeStartFrame + _sizeEndFrame) const size_t _sizePixelData; // Size of '_data' buffer below, minus (_sizeStartFrame + _sizeEndFrame)
const size_t _sizeEndFrame; const size_t _sizeEndFrame;