diff options
author | David Crocker <dcrocker@eschertech.com> | 2021-11-18 16:12:49 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2021-11-18 16:12:49 +0300 |
commit | 020e9fbc171b1a519d9b8f01df2e68f1c273beaf (patch) | |
tree | ef0eb485338a25100620a78d772e823c15798d7d /src | |
parent | cd162aab06bf3cb9df361eb59973125e1c9b42dc (diff) |
Support collecting more than 64k acceleraometer samples
Diffstat (limited to 'src')
-rw-r--r-- | src/Accelerometers/Accelerometers.cpp | 4 | ||||
-rw-r--r-- | src/Accelerometers/LIS3DH.cpp | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/Accelerometers/Accelerometers.cpp b/src/Accelerometers/Accelerometers.cpp index eb56a0fa..4c6adfce 100644 --- a/src/Accelerometers/Accelerometers.cpp +++ b/src/Accelerometers/Accelerometers.cpp @@ -64,7 +64,7 @@ static Task<AccelerometerTaskStackWords> *accelerometerTask; static LIS3DH *accelerometer = nullptr; static uint16_t samplingRate = 0; // 0 means use the default -static volatile uint16_t numSamplesRequested; +static volatile uint32_t numSamplesRequested; static uint8_t resolution = DefaultResolution; static uint8_t orientation = 20; // +Z -> +Z, +X -> +X static volatile uint8_t axesRequested; @@ -388,7 +388,7 @@ GCodeResult Accelerometers::StartAccelerometer(GCodeBuffer& gb, const StringRef& gb.MustSee('P'); const DriverId device = gb.GetDriverId(); gb.MustSee('S'); - const uint16_t numSamples = min<uint32_t>(gb.GetUIValue(), 65535); + const uint32_t numSamples = min<uint32_t>(gb.GetUIValue(), 65535); gb.MustSee('A'); const uint8_t mode = gb.GetUIValue(); diff --git a/src/Accelerometers/LIS3DH.cpp b/src/Accelerometers/LIS3DH.cpp index 6b0a8e25..8602ea25 100644 --- a/src/Accelerometers/LIS3DH.cpp +++ b/src/Accelerometers/LIS3DH.cpp @@ -234,7 +234,7 @@ unsigned int LIS3DH::CollectData(const uint16_t **collectedData, uint16_t &dataR const uint32_t interval = lastInterruptTime - firstInterruptTime; dataRate = (totalNumRead == 0 || interval == 0) ? 0 - : (totalNumRead * StepClockRate)/interval; + : (totalNumRead * (uint64_t)StepClockRate)/interval; totalNumRead += numToRead; } return numToRead; |