Frage bezüglich ADC Datenverarbeitung

Gast #1756620
Lesenswert?

Hallo,

folgende Vorgehensweisen sind doch gleichwertig:
8 Ergebnisse eines 12Bit ADC aufsummieren,
durch 8 dividieren und dann mit Konstanten vergleichen
oder
8 Ergebnisse eines 12Bit ADC aufsummieren,
und dann mit 8 facher Konstante vergleichen?

Also z.B.:
unsigned int wAdcSum;

if (wAdcSum / 8 > MAX_XXX)
{
  ...
}

if (wAdcSum / 8 < MIN_XXX)
{
  ...
}

gleichwertig zu:

if (wAdcSum > MAX_XXX * 8)
{
  ...
}

if (wAdcSum < MIN_XXX * 8)
{
  ...
}

Bei der 2.Methode habe ich doch auch einen "Mittelungseffekt"?

Steh im Moment ein wenig aufm Schlauch ...

Bin für klärende Worte dankbar :-)
#1756636
Lesenswert?

Urlauber schrieb:

> 8 Ergebnisse eines 12Bit ADC aufsummieren,
> durch 8 dividieren und dann mit Konstanten vergleichen

Hier wird das ADC-Ergebnis abgerundet

> oder
> 8 Ergebnisse eines 12Bit ADC aufsummieren,
> und dann mit 8 facher Konstante vergleichen?

Hier nicht.

Die Wahrscheinlichkeit, dass der ADC-Wert größer ist als die Konstante, 
ist also im ersten Fall größer.

Grüße, Peter
#1756812
Lesenswert?

Es gibt schon einen Unterschied. Nehmen wir an, die Konstante ist 
0x0100, die Messwerte sind sieben mal 0x101 und einmal 0x100. 
Aufsummiert also 0x0807. Vergleiche ich das mit der achtfachen Konstante 
(0x0800) ist das größer.

Dividiere ich hingegen , kommt 0x100 als "Mittelwert" der Messungen 
heraus und das ist nicht mehr größer. Der Vergleich ">" wie in dem 
Beispiel ist also im ersten Fall wahr, im zweiten falsch.
Gast #1757064
Lesenswert?

Ok,

if ((wAdcSum & 0xFFF8) > MAX_XXX * 8)
{
  ...
}

wäre dann also zur 1. Methode gleichwertig.

Das bedeutet wohl, das die 2. Methode vielleicht sogar genauer ist,
weil Brüche nicht verlorengehen.

Z.B. so:

if (wAdcSum > MAX_XXX * 8 + 4)
{
  ...
}

Ist nur fraglich ob das sinnvoll ist?

Danke an allen die geantwortet haben.

Lg
Gerhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren