Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-11-18 16:12:49 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-11-18 16:12:49 +0300
commit020e9fbc171b1a519d9b8f01df2e68f1c273beaf (patch)
treeef0eb485338a25100620a78d772e823c15798d7d
parentcd162aab06bf3cb9df361eb59973125e1c9b42dc (diff)
Support collecting more than 64k acceleraometer samples
-rw-r--r--src/Accelerometers/Accelerometers.cpp4
-rw-r--r--src/Accelerometers/LIS3DH.cpp2
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;