Hi, I am trying to obtain values from potentiomater which is connected to PA0 (ADC channel 0), through ADC.
However, the values that I obtain (I show them on LCD display) are not only inconsistent, but also the potentiometer's rotation doesn't effect the value? I have searched a lot and tried different ways but I couldn't find the problem in my code. Please, can you help me where I did wrong? I have attached the related part of the code with comments.
GPIOA->MODER |= GPIO_MODER_MODE0_Msk; //Set as PA0 as Analog Mode
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; //Enable the ADC clock
ADC1->SQR1 = 0x00000000; //1 Convertion
ADC1->SQR2 = 0x00000000;
ADC1->SQR3 = 0x00000000; //0'th channel will be converted first
ADC1->SMPR2 = 0x00000005; //sampling time - 112 cycles
ADC1->CR2 |= ADC_CR2_CONT_Msk; //Enable continious mode
ADC1->CR1 &= ~(ADC_CR1_SCAN_Msk); //Disable Scan mode
ADC1->CR2 |= ADC_CR2_ADON; //Enable ADC
while(1)
{
ADC1->CR2 |= ADC_CR2_SWSTART_Msk; //Start convertion
LCDSendAnInteger((ADC1->DR), 7); //Display value in LCD
notExactTimeDelay(1000000);
LCDClearDisplay();
}