#include "stm32c0xx.h"
#include "stdio.h"
int pin = 12;
void GPIO_Config() {
RCC->IOPENR |= (1<<0);
GPIOA->MODER |= (3<<(2*pin));
}
void ADC_Config() {
RCC->APBENR2 |= (1<<20);
ADC1->CR &=~ (1<<0);
while (ADC1->ISR & (1<<0))
ADC1->CFGR1 |= (2<<3);
ADC1->CHSELR |= (1<<pin);
ADC1->CR |= (1<<0);
while (!(ADC1->ISR & (1<<0)));
}
int main() {
GPIO_Config();
ADC_Config();
while (1) {
ADC1->CR |= (1<<2);
int adcvalue = ADC1->DR;
printf("adcvalue %d\n", adcvalue);
float voltage = (adcvalue / 4095.0) * 3.3;
int voltageInt = (int)(voltage * 100);
printf("Voltage: %d.%02dV\n", voltageInt / 100, voltageInt % 100);
}
}