Hallo Ihr lieben, ich habe mal wieder ein kleines UTS (user to stupid) problem. Und zwar habe ich einen STM32 und habe mir meine ADC Schnittstelle über DMA programmiert. Funktioniert auch super. Bei der Datenauswertung bin ich jetzt auf folgendes Problem gestoßen, da mein ADC natürlich recht schnell arbeitet und meine USART-Schnittstelle wesentlich langsamer fange ich im Prinzip mit den ADC Werten nichts an. Jetzt ist mir die Idee gekommen, dass ich ja jedem ADC Wert einen Zeitstempel geben kann. Nur wie kann ich den mit einem uC realisieren? ODer gibt es da eine andere Möglichkeit? Gruß und Danke für Eure Hilfe. Tentone
Gast
#2759027
Wofür denn die Zeitstempel? Schreibe doch einfach Deine ADC-Werte in ein Array und lies dieses dann Wert für Wert bei der UART-Kommunikation wieder aus. Oder habe ich das Problem ev. falsch verstanden? Brauchst Du jeden Wert? Falls Du gar nicht soviele Werte vom ADC brauchst wie Du kriegst gibts noch zwei weitere Möglichkeiten: a) Löse nur dann eine AD-Wandlung aus, wenn Du auch wirklich einen Wert brauchst. Du kannst die AD-Wandlung somit auch langsamer = rauschfreier = stromsparender laufen lassen. b) Schreibe die Werte in ein Array und mittle jeweils über mehrere Werte, so kriegst Du ein geringeres Rauschen. Theoretisch kannst Du so sogar noch zusätzliche Bits an Auflösung gewinnen, wenn Du z.B. 4 Werte addierst und dann nur durch 2 rechnest kriegst Du ein Bit mehr. Dieses Verfahren nennt sich Oversampling-Verfahren. Gruss Simon
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.