/* Name: Schieder Fabian Datum: 11.02.2026 Datei: ADC.c Hardware: MDDS Funktionsbeschreibung: ADC konfigurieren und in eine Variable ADC_Wert übergeben */ #include "stm32f10x.h" #include "armv40_frl.h" #include "stdio.h" #include "math.h" int ADC_Wert = 0; float ADC_Spannung = 0; char buffer[30]; int L = 0; int main(void) { uart3_init(9600); //RCC -> APB2ENR |= (1 << 9); // Clock für ADC1 aktivieren RCC -> APB2ENR |= RCC_APB2ENR_ADC1EN; // alternative Variante RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // Clock für PA0 GPIOA->CRL &= 0xFFFFFFF0; // PA0 Analog Input ADC1 -> SMPR2 = 0x00000005; // 55,5 cycles ADC1 -> SQR1 = 0x00000000; // 1 conversion ADC1 -> SQR2 = 0x00000000; // -//- ADC1 -> SQR3 = 0x00000000; // -//- ADC1 -> CR2 = 0x000E0001; // ADC wake up while(1) { ADC1 -> CR2 |= 0x00500000; // Start conversion while(!(ADC1 -> SR & 0x2)); ADC_Wert = ADC1 -> DR; ADC_Spannung = (3.3 / 4095) * ADC_Wert; L = (int)(27.86 * powf(ADC_Spannung, - 1.15)); wait_ms(1); sprintf(&buffer[0], "ADCWert.val=%04d\xff\xff\xff", ADC_Wert); uart3_put_string(&buffer[0]); sprintf(&buffer[0], "ADCSpannung.txt=\"%02d cm\"\xff\xff\xff", L); uart3_put_string(&buffer[0]); } return 0; }