ADC1_PRESSEL_FCPU_D18,
ADC1_EXTTRIG_GPIO,
DISABLE,
ADC1_ALIGN_RIGHT,
ADC1_SCHMITTTRIG_CHANNEL0,
DISABLE);
ADC1_Cmd(ENABLE);
}
void lcd_print(unsigned char x_pos, unsigned char y_pos, unsigned int value)
{
char chr = 0x00;
chr = ((value / 1000) + 0x30);
LCD_goto(x_pos, y_pos);
LCD_putchar(chr);
chr = (((value / 100) % 10) + 0x30);
LCD_goto((x_pos + 1), y_pos);
LCD_putchar(chr);
chr = (((value / 10) % 10) + 0x30);
LCD_goto((x_pos + 2), y_pos);
LCD_putchar(chr);
chr = ((value % 10) + 0x30);
LCD_goto((x_pos + 3), y_pos);
LCD_putchar(chr);
}
Explanation
First, we need to enable the peripheral clock of the ADC module:
CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, DISABLE);
Secondly, we have to set out ADC pin as a floating GPIO with no interrupt capability:
GPIO_Init(GPIOB, GPIO_PIN_0, GPIO_MODE_IN_FL_NO_IT);
ADC setup needs a few info regarding the desired ADC channel:
void ADC1_setup(void)
{
ADC1_DeInit();
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,
ADC1_CHANNEL_0,
ADC1_PRESSEL_FCPU_D18,
ADC1_EXTTRIG_GPIO,
DISABLE,
ADC1_ALIGN_RIGHT,
ADC1_SCHMITTTRIG_CHANNEL0,
DISABLE);
ADC1_Cmd(ENABLE);
}