arch/arm/src/stm32/stm32_adc.c: fix injected channels configuration for ADC IPv1

This commit is contained in:
raiden00pl 2020-04-21 21:37:47 +02:00 committed by patacongo
parent a85ffd0fbd
commit 0e09d162e2

View File

@ -3798,8 +3798,22 @@ static int adc_inj_set_ch(FAR struct adc_dev_s *dev, uint8_t ch)
for (i = 0 ; i < priv->cj_channels; i += 1)
{
#if defined(HAVE_IP_ADC_V1)
/* Injected channels sequence for for ADC IPv1:
*
* 1 2 3 4
* IL=1: JSQR4,
* IL=2: JSQR3, JSQR4
* IL=3: JSQR2, JSQR3, JSQR4
* IL=4: JSQR1, JSQR2, JSQR3, JSQR4
*/
setbits |= (priv->j_chanlist[priv->cj_channels - 1 - i] <<
(ADC_JSQR_JSQ4_SHIFT - ADC_JSQR_JSQ_SHIFT * i));
#else
setbits |= priv->j_chanlist[i] << (ADC_JSQR_JSQ1_SHIFT +
ADC_JSQR_JSQ_SHIFT * i);
ADC_JSQR_JSQ_SHIFT * i);
#endif
}
/* Write register */