ikke
29.12.2006, 17:43
Moinmoin an alle,
ich hab mal ne Frage zu einem Problem, welches ich mir nicht ganz erklären kann:
Laut Datenblatt hat der Analogausgang der M-Unit eine Frequenz von 1953 Hz. Ich habe nun ein Programm, in dem ich über einen der Analogausgänge ein Signal ausgebe. Verrückterweise ist es mir aber nicht möglich, zwischen zwei Schritten in diesem Programm einen zeitlichen Wert zu erreichen, der auch nur annähernd in die Nähe der 1953 Hz kommen würde. Um genau zu sein, benötigt ein solcher Vorgang (erhöhen oder erniedrigen eines Wertes am Analogausgang) relativ genau das 10-Fache der gewünschten Zeit (--> statt ~0,5 ms, was ja der Kehrwert von 1953 Hz ist, werden ~5ms benötigt).
Bei einer solchen Schleife zum Beispiel:
FOR i=1 TO 10
wert=wert +5
analogwert= wert
next
messe ich am Ausgang zwischen einem Wert und dem anschließenden oben erwähnte 5ms (analogwert ist dabei der Analogausgang, wert eine Hilfsvariable zum zählen).
Liegt dieses nun an einem ungeschickten Programmierstil oder an Basic selbst? Hatte festgestellt, dass ich eine Hilfsvariable einführen muss, da sich das Programm ansonsten den letzen Wert des Analogausganges nicht merkt (in einer nächsten Schleife fing das Programm immer von 0 an zu zählen und nicht von dem letzten Wert der vorherigen Schleife)? Wäre eine schnellere Alternative zum Beispiel wirklich Zeile für Zeile dem Analogausgang einen Wert zuzuweisen (mit der folge, dass tatsächlich 0,5ms zwischen den jeweiligen Werten liefen?), also z.B. analogwert =5; analogwert=10, usw? Ich habe in dem Forum dazu leider nichts finden können... :(
Ich bedanke mich schon einmal für jede noch so kleine Hilfe,
grüße Ikke
ich hab mal ne Frage zu einem Problem, welches ich mir nicht ganz erklären kann:
Laut Datenblatt hat der Analogausgang der M-Unit eine Frequenz von 1953 Hz. Ich habe nun ein Programm, in dem ich über einen der Analogausgänge ein Signal ausgebe. Verrückterweise ist es mir aber nicht möglich, zwischen zwei Schritten in diesem Programm einen zeitlichen Wert zu erreichen, der auch nur annähernd in die Nähe der 1953 Hz kommen würde. Um genau zu sein, benötigt ein solcher Vorgang (erhöhen oder erniedrigen eines Wertes am Analogausgang) relativ genau das 10-Fache der gewünschten Zeit (--> statt ~0,5 ms, was ja der Kehrwert von 1953 Hz ist, werden ~5ms benötigt).
Bei einer solchen Schleife zum Beispiel:
FOR i=1 TO 10
wert=wert +5
analogwert= wert
next
messe ich am Ausgang zwischen einem Wert und dem anschließenden oben erwähnte 5ms (analogwert ist dabei der Analogausgang, wert eine Hilfsvariable zum zählen).
Liegt dieses nun an einem ungeschickten Programmierstil oder an Basic selbst? Hatte festgestellt, dass ich eine Hilfsvariable einführen muss, da sich das Programm ansonsten den letzen Wert des Analogausganges nicht merkt (in einer nächsten Schleife fing das Programm immer von 0 an zu zählen und nicht von dem letzten Wert der vorherigen Schleife)? Wäre eine schnellere Alternative zum Beispiel wirklich Zeile für Zeile dem Analogausgang einen Wert zuzuweisen (mit der folge, dass tatsächlich 0,5ms zwischen den jeweiligen Werten liefen?), also z.B. analogwert =5; analogwert=10, usw? Ich habe in dem Forum dazu leider nichts finden können... :(
Ich bedanke mich schon einmal für jede noch so kleine Hilfe,
grüße Ikke