Forum: Mikrocontroller und Digitale Elektronik ADC Kanäle 20 ms lang messen


von Rico (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Freunde

Erstmal danke an allen, die hier beteilgien um andern zu helfen.
Ich bin Anfänger und nun habe ich es geschafft ein Intrupt zu 
programmien, der mir die eingänge ADC1,2,3 liest und an SR232 
schnitstelle schickt.
Nun möchte ich mein Programm erweitern, ich möchte an jedem Eingang Adc 
1,2,3  20ms Lang messen. Ich weiss nicht wie ich das mit der Zeit 
hinkriege.
Wäre echt sehr sehr nett, wenn jemand mir dabei helfen kann, es heisst 
nicht für mir den Programm schreiben, sondern nur typs geben.
Ich benutze ein Atmega8 und mein Programm findt ihr als Anhang

viel Danke im Voraus

von Helmut L. (helmi1)


Lesenswert?

Ich nehme wohl an das du mit 20mS messen meinst das die ganze Wandlung 
20mS dauern soll um den 50Hz Brumm auszufiltern. Das geht so auf den 
ersten Blick nicht den der Wandler wandelt im Prinzip so schnell er kann 
(Durch ADC Clock Teiler einstellbar). Was du aber machen kannst ist 
mehrere Messung ueber 20mS zu machen und dann den Mittelwert zu 
berechnen. Damit hast du einen digitalen Tiefpass deinem ADC 
nachgeschaltet und deine 50Hz Brumm sollte rausfallen.

von Kopfschüttel (Gast)


Lesenswert?

Helmut Lenzen schrieb:
> 20mS

Ich vermute mal, dass du nicht Millisiemens (mS) sondern Millisekunden 
(ms) meinst?

von Rico (Gast)


Lesenswert?

Hallo Helmil
Danke für die schnelle antwort, warscheinlich habe ich mein Problem 
nicht so gut dargestellt.
Ich möchte über 20ms mehrere messungen machen, also adc1 einschalten und 
dann 20 ms lang messen danach auscchalten. Die frage wie kriege ich in 
meinem programm die 20ms her, wie kann ich diese Zeit in meiner 
Interrupt implemnetiern

Danke

von Matthias (Gast)


Lesenswert?

Du kannst z.B. einen Timer im "Normal Mode" verwenden und den Overflow 
Interrupt nutzen, um deine Meßschleife zu beenden.

von Helmut L. (helmi1)


Lesenswert?

Kopfschüttel schrieb:
> Ich vermute mal, dass du nicht Millisiemens (mS) sondern Millisekunden
> (ms) meinst?

Richtig! Ich wollte nur testen ob du aufpasst :-)

von Kopfschüttel (Gast)


Lesenswert?

Helmut Lenzen schrieb:
> Richtig! Ich wollte nur testen ob du aufpasst :-)

Lehrer?

von Helmut L. (helmi1)


Lesenswert?

Kopfschüttel schrieb:
> Helmut Lenzen schrieb:
>> Richtig! Ich wollte nur testen ob du aufpasst :-)
>
> Lehrer?

Noe. Und du Klassenprimus?

von Ulrich (Gast)


Lesenswert?

Wenn der µC währenddessen nicht viel zu tun hat, kann man den ADC 
durchgängig messen lassen (free running mode). Aus der Zeit für eine 
Wandlung läßt sich dann ausrechnen wie viele Werte man mitteln muss. Je 
nach Takt und Vorteiler braucht eine Wandlung z.B. 0.1 ms, was dann 200 
Messungen für 20 ms entspricht. Die eigentliche Messung kann dann z.B. 
im Interrupt ablaufen. Durch das Oversampling kann das Ergebnis auch mit 
mehr Bits (z.B. 12) angeben werden als die 10 Bits des AD Wandlers.

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
Noch kein Account? Hier anmelden.