Skip to content

Commit 52c34d0

Browse files
committed
[nrf fromlist] drivers: adc: nrfx_saadc: Fix for negative samples correction
Increment pointer only when channel was selected. Upstream PR #: 94705 Signed-off-by: Jakub Zymelka <[email protected]>
1 parent 54b520e commit 52c34d0

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

drivers/adc/adc_nrfx_saadc.c

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -550,10 +550,11 @@ static void correct_single_ended(const struct adc_sequence *sequence, nrf_saadc_
550550
{
551551
int16_t *sample = (int16_t *)buffer;
552552
uint8_t selected_channels = sequence->channels;
553-
uint8_t divide_single_ended_value = m_data.divide_single_ended_value;
553+
uint8_t divide_mask = m_data.divide_single_ended_value;
554+
uint8_t single_ended_mask = m_data.single_ended_channels;
554555

555556
if (m_data.internal_timer_enabled) {
556-
if (selected_channels & divide_single_ended_value) {
557+
if (selected_channels & divide_mask) {
557558
for (int i = 0; i < num_samples; i++) {
558559
sample[i] /= 2;
559560
}
@@ -564,20 +565,22 @@ static void correct_single_ended(const struct adc_sequence *sequence, nrf_saadc_
564565
}
565566
}
566567
}
567-
} else {
568-
uint8_t single_ended_channels = m_data.single_ended_channels;
569-
570-
for (uint16_t channel_bit = BIT(0); channel_bit <= single_ended_channels;
571-
channel_bit <<= 1) {
572-
if (channel_bit & selected_channels & single_ended_channels) {
573-
if (channel_bit & divide_single_ended_value) {
574-
*sample /= 2;
575-
} else if (*sample < 0) {
576-
*sample = 0;
577-
}
568+
return;
569+
}
570+
571+
for (uint16_t channel_bit = BIT(0); channel_bit <= single_ended_mask; channel_bit <<= 1) {
572+
if (!(channel_bit & selected_channels)) {
573+
continue;
574+
}
575+
576+
if (channel_bit & single_ended_mask) {
577+
if (channel_bit & divide_mask) {
578+
*sample /= 2;
579+
} else if (*sample < 0) {
580+
*sample = 0;
578581
}
579-
sample++;
580582
}
583+
sample++;
581584
}
582585
}
583586

0 commit comments

Comments
 (0)