Nic Geschrieben August 29, 2013 at 14:36 Share Geschrieben August 29, 2013 at 14:36 Das neue Averaging im AnalogIn habe ich noch nicht richtig verstanden. Wenn ich mit SetAveraging=100 setze, bedeutet dies das erst 100 Werte gesammelt werden bevor über den Callback OnVoltage der Mittelwert zurückgemeldet wird ? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
photron Geschrieben August 29, 2013 at 14:40 Share Geschrieben August 29, 2013 at 14:40 Richtig. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Nic Geschrieben August 29, 2013 at 14:49 Autor Share Geschrieben August 29, 2013 at 14:49 D.h. der Callback wird zeitlich verzögert, d.h. trotz einer eingestellten Periode von z.B. 1000ms und Averaging=100, bekomme ich aber erst nach 100s einen Callback ? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
photron Geschrieben August 29, 2013 at 15:22 Share Geschrieben August 29, 2013 at 15:22 Nein. Das ganze ist so: Intern wird die Spannung jede Millisekunde gemessen und über 50 Messwerte wird dann der Mittelwert gebildet. Diesen Mittelwert kannst du dann über GetVoltage abfragen oder dir über OnVoltage mitteilen lassen. Über die Periode von OnVoltage kannst du einstellen wie häufig dir neue Werte mitgeteilt werden. Wenn sich der Mittelwert nicht ändert wird OnVoltage nicht aufgerufen. Wenn er sich ändert wird OnVoltage sofort aufgerufen. Dann aber erst frühstens wieder nach der eingestellten Periode. Wenn sich also der Mittelwert ständig ändert bekommst du alle Periode Millisekunden einen Callback. Vor Version 2.0.3 was das Averaging fest auf 50. Dass heißt, der Mittelwert wurde über 50 Messwerte bestimmt und konnte sich daher nur alle 50 msec ändern. Damit wurde dann OnVoltage auch höchstens alle 50 msec aufgerufen, selbst wenn du die Periode von OnVoltage kleiner eingestellt ist. Durch die Mittelwertbildung bedingt werden Änderungen der Spannung im Worst Case erst um Länge der Mittelwertbildung Millisekunden verzögert gemeldet. Mit Version 2.0.3 kann das Averaging jetzt zwischen 1 und 255 Werten eingestellt werden. Dadurch hast du Kontrolle darüber ob du Änderungen ohne Verzögerung haben möchtest, oder glattere Werte. Zu deinem Beispiel, bei einer Periode von 1000 Millisekunden und Averaging von 100 Werten bekommst du im Worst Case eine Spannungsänderung erst nach 1100 Millisekunden durch OnVoltage mitgeteilt. Im Best Case direkt, wenn gerade die Periode angelaufen ist und die Spannungsänderung der 99. der 100 Werte pro Mittelwert ist. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Nic Geschrieben August 29, 2013 at 15:49 Autor Share Geschrieben August 29, 2013 at 15:49 Besten Dank, prima Sache das Averaging. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Loetkolben Geschrieben August 29, 2013 at 16:55 Share Geschrieben August 29, 2013 at 16:55 Nabend. Interessiert habe ich mitgelesen und es hat lange gedauert bis ich es verstanden habe, aber: Bei "Konfigurationsfunktionen für Callbacks (set_voltage_callback_period)" steht: Setzt die Periode in ms mit welcher der CALLBACK_VOLTAGE Callback ausgelöst wird. Ein Wert von 0 deaktiviert den Callback. Kann es sein, dass es sich nicht um eine Periode handelt und es somit zu Verwirrungen kommen kann? Muesste es nicht heissen: Setzt die minimale (Pausen-)Zeit in ms mit welcher ein CALLBACK_VOLTAGE Callback nach dem anderen CALLBACK_VOLTAGE Callback ausgelöst werden kann. Zum Ausloesen muss (irgend)ein Mittelwert innerhalb der eingestellten (Pausen-)Zeit, vom letzten geschickten Mittelwert abweichen. Ist das nun zu kleinkariert oder habe ich es doch nicht verstanden? Aus obigen Text ergibt sich die Zusatzfrage: Angenommen die Periode/Pausenzeit betraegt 1000ms Alle 100ms wird ein Mittelwert gebildet. Der letzte per Callback geschickte Mittelwert war 3Volt. Wann wird der naechste Callback ausgeloest? a) Erst wenn der erste Mittelwert nach Ablauf der Periode/Pausenzeit <> 3V betraegt? Ermittelte Mittelwerte innerhalb der Periode/Pausenzeit werden ignoriert. b) Sofort nach Ablauf der Periode/Pausenzeit weil bereits irgendein Mittelwert innerhalb der Periode/Pausenzeit <> 3V betragen hat? Bei b) koennte es dann passieren dass zufaellig wieder der Wert 3V geschickt wird?! [size=10pt]1. Zeile: Periode/Pausenzeit a=Anfang, e=Ende 2. Zeile: Messwerte in Volt (x=egal) 3. Zeile: v=Zeitpunkt des mit Callback verschickten Wertes?? ----e a-----------------e a-----------------e 3 4 5 6 3 2 6 7 3 3 3 1 2 4 5 6 7 2 8 2 4 v v v[/size] Der Loetkolben Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.