www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Auf der Suche nach dem MaxWert ( ADC )


Autor: Marc Weisner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit,
folgendes  ich scanne mit meinem ADC (8051 Derivat) mehrere Kanäle und
schreibe die Werte für jeden Kanal in eine Tabelle mit 100 Werten. Dann
durchsuche ich die Tabelle auf den größten gemessenen Wert was auch gut
klappt.
Jetzt mein Problem ich möchte gerne den gemessenen Werten die Zeit zu
dennen Sie gemessen worden sind zuordnen.
Wie stelle ich das an? Die Zeit für eine Wandlung dauert ca 6µs.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauchst du die Werte noh für andere Sachen, dass du sie in eine Tabelle
schreibst?
Sonst brauchst nämlich nur eine Variable für jeden ADC-Kanal:
alterWert.
Der Vergleich läuft dann so ab:
ist alterWert < aktuellerWert?
ja: speicher Zeit ab und setzt alterWert = aktuellerWert
Nein: dann tue nichts.
Für die Zeit musst du halt irgendwelche Variable bei jeder ADC-Messung
inkrementieren... (Zeitbasis sind dann die 6µs).

Autor: Marc Weisner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss noch den Mittelwert errechnen deswegen Tabelle!
Wie meinst du das genau mit speicher Zeit ab woweg nehmen?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe das Problem nicht. Wenn es 100 Messungen sind mit jeweils 6
µs, mußt du nur einen Zeitpunkt (z.B. den Anfang) speichern. Danach
kannst du den Zeitpunkt jeder Messung daraus ausrechnen (Start + 6 µs *
(Index * Kanalzahl + aktueller Kanal))

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie meinst du das genau mit speicher Zeit ab woweg nehmen?

Was darf mir diese Frage sagen?

Vermutung: Es hat irgendwas mit der "Uhrzeit" zutun.

Man hat eine Zeitbasis, also ein Ereignis, dass in regelmässigen
Abständen auftritt.
Wenn man die Folge dieser Ereignisse mitzählt, kommt man zu einer Art
Uhr (eine "normale" Uhr hat als Zeitbasis eine Sekunde).
Lässt man diese Uhr nun im Controller laufen, dann kann man die
Uhrzeit, zu der ein grösserer Wert aufgelaufen ist, in einer Variablen
abspeichern (die Variable kann auch im EEPROM liegen...).
Wenn du jetzt kontinuierlich den ADC ausliest, könnte man die Messdauer
als Zeitbasis benutzen...
Oder man geht den anderen Weg und lässt den ADC durch ein
Timer-Interrupt auslösen (AFAIK können das eine AVR).

Autor: Marc Weisner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das ist ja soweit auch richtig meinte mit den 6µs nicht das jede
Messung genau diese Zeit braucht da sind schon differenzen drin!
Möchte halt eine Zeit zum Messwert haben die nicht berechnet ist!

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Mittelwert kann man auch gleitend bilden...
Und wie Hannes schon anmerkte: Benutze eine Tabellengrösse, die eine
Potenz von 2 ist. Das verringert den Rechenaufwand.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum hast du uns das den anfangs verheimlicht? Du kannst natürlich,
wenn du noch genug Speicher übrig hast, den Zeitpunkt jeder Messung
auch mit in der Tabelle abspeichern. Den ermittelst du mit einem Timer.
Wie das bei deinem µC genau geht, kann ich dir nicht sagen.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und wie Hannes schon anmerkte: Benutze eine Tabellengrösse, die eine
> Potenz von 2 ist. Das verringert den Rechenaufwand.

Das war ich nicht... Auch war das in einem anderen Thread...
Aber dort gibt es ein AVR-ASM-Beispiel für Mittelwert über 256
Messungen:
http://www.mikrocontroller.net/forum/read-1-404515...

...

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das war ich nicht...
Schuldigung. Bist du mir jetzt böse?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bist du mir jetzt böse?

Nööö, warum sollte ich? Es könnte aber sein, dass Andere auf uns böse
sind weil wir so oft OT-Dialoge schreiben...

Grüß die Sprotten...
...HanneS...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.