Moin !
Naja, prinzipiell ja ne tolle Idee. Aber die gemessenen Werte schwanken. Und das zum Teil erhelblich. Ich habe hier einen UniTest2. Das ist ein Testgerät für den Elektromodellflug. Ich gehe mal davon aus, dass dieses Gerät recht stabile Servoimpulse erzeugen kann. Andernfalls würde man das eh durch ein Zittern der Servos bemerken. Dem ist aber nicht so ...Wieso nimmst du nicht den Befehl "Pulsein"
Der mißt von Flanke zu Flanke und brauchst nichts zu berechnen.
Mit Pulsein kannst du Impulse bis 680 mS messen.
So und wenn ich nun mit Pulsein die Impulslänge bestimme, dann kriege ich sowas:
Man kann schön erkennen das der Impuls im Prinzip 177 * 10µs = 1,77ms lang ist. Aber da sind eben immer diese Ausreisser. Wenn ich diese gemessenen Werte spasshalber auf ein Servo gebe (natürlich vorher in die passende Form gebracht), dann zittert sich das Servo zu Tode.Impuls 175
Impuls 177
Impuls 173
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 172
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 173
Impuls 177
Impuls 175
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 175
Impuls 177
Impuls 173
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 177
Impuls 172
Impuls 177
Impuls 176
Also wie zum Henker kann ich einen Servoimpuls sauber messen? Kann doch nit so schwer sein ein ms Signal zu messen.![]()
Auch eine Mittelwertbildung über 10 Werte macht nicht glücklich. Denn dann hat man immer noch Schwankungen von teilweise 1-2!
So und auch meine Routine hat das gleiche Verhalten.
Das ist sicher nich die beste Routine. Aber vom Prinzip her gehts. Aber auch hier immer Schwankungen.Code:' Impuls messen ... Function Lopulse() As Word While Inputpin <> 1 : Wend Wtime = 0 While Inputpin = 1 Incr Wtime Wend Lopulse = Wtime End Function Lopulse()
Ich verstehe das nicht. Auf dem µC läuft doch kein OS was irgendwelche Zeitscheiben abarbeitet ?! Da laufen doch nur ein paar Befehle die einen Impuls messen und ausgeben. Warum sind da überhaupt diese Schwankungen?
Liegt es evtl. am verwendeten Tiny26? Weil der hat keinen 16 Bit Timer. Wäre es mit einem Mage Steinchen evtl. besser zu realisieren?
Hoffe jemand hat hier noch nen Tip ?!






Zitieren

Lesezeichen