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
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.
Helmut Lenzen schrieb: > 20mS Ich vermute mal, dass du nicht Millisiemens (mS) sondern Millisekunden (ms) meinst?
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
Du kannst z.B. einen Timer im "Normal Mode" verwenden und den Overflow Interrupt nutzen, um deine Meßschleife zu beenden.
Kopfschüttel schrieb: > Ich vermute mal, dass du nicht Millisiemens (mS) sondern Millisekunden > (ms) meinst? Richtig! Ich wollte nur testen ob du aufpasst :-)
Kopfschüttel schrieb: > Helmut Lenzen schrieb: >> Richtig! Ich wollte nur testen ob du aufpasst :-) > > Lehrer? Noe. Und du Klassenprimus?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.