Hallo, ich bekomme den ADC vom STM32F373 nicht zum laufen.. Muss ein der globale Interrupt eingeschaltet sein oder sowas oder stimmt die Reihenfolge nicht? Er führt nicht mal die While Schleife aus, das Ergebnis ist immer 0 statt 99
1 | void adc_read_(int n){ |
2 | ADC_CR2.B0 = 1; //SIgma Delta ADC einschalten |
3 | SDADC1_CR1.B31 = 1; // Init ADC1 |
4 | ADC_CR2.B0 = 1; //SIgma Delta ADC einschalten |
5 | delay_ms(10); |
6 | ADC_CR2.B0 = 0; //SIgma Delta ADC ausschalten |
7 | delay_ms(10); // 100 Microsekunden Stabilisierung |
8 | SDADC1_CR2.B19=0; |
9 | SDADC1_CR2.B18=0; |
10 | SDADC1_CR2.B17=0; |
11 | SDADC1_CR2.B16=0; //Wähle Kanal 1 von SDADC 1 |
12 | SDADC1_CONF0R.B27 = 0; // set 26/26 auf 0 / 1 für single ended mode |
13 | SDADC1_CONF0R.B26 = 1; // set 26/26 auf 0 / 1 für single ended mode |
14 | // auf 11 setzten für Single endes Zero mode negativ ist dann auf GND |
15 | SDADC1_CR1.B17 = 1; |
16 | SDADC1_CR1.B31 = 0; // Init ADC1 |
17 | SDADC1_CR1.B17 = 1; |
18 | delay_ms(10); |
19 | ADC_CR2.B0 = 1; //SIgma Delta ADC einschalten |
20 | delay_ms(10); // 100 Microsekunden Stabilisierung |
21 | SDADC1_ISR.B3=1; |
22 | SDADC1_CR2.B23=1; //Starte ADC Wandlung |
23 | while (SDADC1_ISR.B3 = 1) { |
24 | ADC_regular = 99;//SDADC1_RDATAR; |
25 | } |
26 | } |