Hallo, ich verwende den Mikrocontroller STM32F105. Er hat zwei ADC's. ADC_1: Nur ADC_1 kann laut Spec per DMA verwendet werden. Diesen brauche ich bereits für eine größere Folge von schnellen Messungen. ADC_2: Hier ist DMA nicht möglich. Trotzdem ist es möglich mehrere Kanäle zu einer festen Reihenfolge zu definierten und diese dann automatisch die Analogwerte umwandeln zu lassen. Was ich hier nicht verstehe ist, ob die gewandelten Ergebnisse tatsächlich wieder einzeln vom ADC-Register abgeholt werden müssen. An dieser Stelle würde dann schließlich wieder zusätzliche Rechenzeit benötigt werden, um zu selektieren zu welchem Kanal das Ergebnis gehört hat. Gibt es beim STM wirklich nur Register (pro ADC) für die Ergebnisse, oder übersehe ich die anderen ständig? Komme ich also nicht um einen IRQ-Aufruf herum (was dann noch Rechenintensiver wäre)?
Hi brechbunkt, beim STM32F4 kann mann bis zu vier Kanäle noch zu einer "Injected Group" zusammenfassen. die 4 ADC-Werte werden dann alle in getrennten Registern gespeichert und können von der CPU mit dem Zugriff ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1); bis ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_4); ausgelesen werden ob es das beim STM32F1 auch gibt musst du mal nachlesen Gruss Uwe
Müsste gehen mit dem Injectedchannel Werte kannst du auch so holen: temp1=ADC2->JDR1; temp2=ADC2->JDR2; Der Stm32f4 hat auch beim ADC2 einen DMA und was ist an einem Interrupt rechnenintensiv?, Werte holen, speichern, fertig G Ert
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.