PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frequenz des des D/A -Ausganges (M-Unit) wirklich 1953 Hz?



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

DIE HARD
30.12.2006, 18:10
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

Hallo.......
Wie es scheint verwechselst du hier was:
1953Hz ist der Wert mit dem sich die ausgegebene Pulsbreite
SELBSTSTÄNDIG wiederholt.

Die ÄNDERUNG dieses Wertes dauert deswegen so lang weil
die alte C-CONTROL sehr langsam ist.
Die Neue Unit M 2.0 kann das in ca. 100us (statt 5ms)

ikke
31.12.2006, 14:20
danke schon einmal für die schnelle antwort @ die hard.
könntest du mir vielleicht sagen, wo du diese zeiten entnommen hast? die einzige zeitangabe, die ich finden konnte, waren die besagten 1953Hz. diese 5ms habe ich nicht finden können, sondern nachgemessen. ich habe leider nirgendwo diese 5ms als minimale änderungszeit des analogausganges finden können. kann man diese zahl irgendwo entnehmen oder mirklich nur durch messen herausfinden? und liegen diese 5ms daran, dass der basic-interpreter der unit 1 eine schnellere änderung nicht möglich macht oder an etwas anderem?
grüße :)

DIE HARD
01.01.2007, 15:04
diese 5ms habe ich nicht finden können, sondern nachgemessen. ich habe leider nirgendwo diese 5ms als minimale änderungszeit des analogausganges finden können. kann man diese zahl irgendwo entnehmen oder mirklich nur durch messen herausfinden? und liegen diese 5ms daran, dass der basic-interpreter der unit 1 eine schnellere änderung nicht möglich macht oder an etwas anderem?
grüße :)

Hallo......
Du hast es in allen Punkten richtig erfasst. Die 5ms sind die Zeit, die der
Interpreter braucht um die Befehle abzuarbeiten. Rund 1ms pro Befehl.
ciao.......

ikke
02.01.2007, 15:06
super, dann danke ich dir nochmal für deine nette und schnelle hilfe
:)
grüße