Skip to content

Commit d62b473

Browse files
author
gorazd
committed
lpc546xx: fix adc
Resolve #5304
1 parent 3bedff3 commit d62b473

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

targets/TARGET_NXP/TARGET_MCUXpresso_MCUS/api/analogin_api.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ void analogin_init(analogin_t *obj, PinName pin)
3838

3939
uint32_t instance = obj->adc >> ADC_INSTANCE_SHIFT;
4040
adc_config_t adc_config;
41+
uint32_t reg;
42+
uint32_t pin_number = pin & 0x1F;
43+
uint8_t port_number = pin / 32;
44+
45+
/* Clear the PDEN_ADC0 bit in the PDRUNCFG0 */
46+
reg = IOCON->PIO[port_number][pin_number] & ~IOCON_PIO_DIGIMODE_MASK;
47+
reg &= ~(1UL << SYSCON_PDRUNCFG_PDEN_ADC0_SHIFT);
48+
IOCON->PIO[port_number][pin_number] = reg;
4149

4250
ADC_ClockPower_Configuration();
4351

@@ -69,6 +77,7 @@ uint16_t analogin_read_u16(analogin_t *obj)
6977
adcConvSeqConfigStruct.interruptMode = kADC_InterruptForEachSequence;
7078

7179
ADC_SetConvSeqAConfig(adc_addrs[instance], &adcConvSeqConfigStruct);
80+
ADC_EnableConvSeqA(adc_addrs[instance], true);
7281
ADC_DoSoftwareTriggerConvSeqA(adc_addrs[instance]);
7382

7483
/* Wait for the converter to be done. */

0 commit comments

Comments
 (0)