mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-25 17:25:20 +03:00
Prevent bad data being used during early system startup.
This commit is contained in:
parent
e30a373c92
commit
2413130c0f
2 changed files with 31 additions and 15 deletions
|
@ -202,11 +202,21 @@ uint16_t calculateNonDataDrivenChannel(uint8_t chan, uint16_t sample)
|
|||
{
|
||||
static int16_t rcSamples[MAX_SUPPORTED_RX_PARALLEL_PWM_OR_PPM_CHANNEL_COUNT][PPM_AND_PWM_SAMPLE_COUNT];
|
||||
static int16_t rcDataMean[MAX_SUPPORTED_RX_PARALLEL_PWM_OR_PPM_CHANNEL_COUNT];
|
||||
static bool rxSamplesCollected = false;
|
||||
|
||||
uint8_t currentSampleIndex = rcSampleIndex % PPM_AND_PWM_SAMPLE_COUNT;
|
||||
|
||||
// update the recent samples and compute the average of them
|
||||
rcSamples[chan][currentSampleIndex] = sample;
|
||||
|
||||
// avoid returning an incorrect average which would otherwise occur before enough samples
|
||||
if (!rxSamplesCollected) {
|
||||
if (rcSampleIndex < PPM_AND_PWM_SAMPLE_COUNT) {
|
||||
return sample;
|
||||
}
|
||||
rxSamplesCollected = true;
|
||||
}
|
||||
|
||||
rcDataMean[chan] = 0;
|
||||
|
||||
uint8_t sampleIndex;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue