hallo zusamen, ich verwende ADC (Atmega8) um Daten zweier Analoge Signale (Phase und Amplitude) zu digitalisieren und daraus die Realen und Imaginaeren Werte zu berechnen. Bis dahin alles ok. Nun muss ich diese Daten weiterleiten, zu meinem PCI Karte, die Analoge-Eingaenge hat. Meine Frage wie kann ich die berechneten Daten weiter zu meiner PCI Karte weiterleiten. Danke im Voraus.
Was macht denn die PCI-Karte genau? Digitalisiert sie die Werte an ihren analogen Eingängen? Wieso willst du die an die Karte weiterleiten?
> wie kann ich die berechneten Daten weiter zu meiner PCI > Karte weiterleiten. Mit einem DA-Wandler.
hi,
die PCI Karte digitalisierte die Werte.
>>Wieso willst du die an die Karte weiterleiten?
Der Grund ist einfach, weil die Karte unter LabView erkannt wird.
>>Mit einem DA-Wandler.
Die Werte sind in double (Real und Imag). wie kann ich sie weiterleiten,
oder aus welchem Port?
An dem Port an dem du einen DA-Wandler angeschlossen hast. Such dir einen passenden aus.
Ich verstehe nicht was Du meinst. Die werte sind in double (Real=3.45666 und Imag=2.56444), wenn ich sie Weiterleite(z.B an die Ports B und C) dann sind die Werte nicht mehr gleich. An die Ports B und C werden 3 bzw. 2 angezeigt. Die Genauigkeit wird verloren gehen, oder was meinst Du?
Dann wandel deine double Werte eben in Fixkommawerte um oder einfach in einen 16Bit Wert. Aber dein Konzept solltest du so oder so nochmal überdenken.
Was soll das werden ? Wenn deine PCI Karte analoge Eingänge hat, warum benutzt du dann nicht deren AD Wandler ? Falls es nicht ohne den Atmega geht dann übertrage die Daten vom Atmega z.B. seriell zum PC via USB oder RS-232.
>Wenn deine PCI Karte analoge Eingänge hat, warum benutzt du dann nicht >deren AD Wandler ? Das frage ich mich auch. Warum musst du deine komplexen Werte unbedingt mit dem Controller ermitteln. Schicke die analogen Signale doch gleich über PCI-Karte zu LabView und berechne mit LabView die komplexen Werte.
LabView braucht langer fuer die Berechnung. Die Karte in sich ist sehr schnell, aber die Bearbeitung ist ziemlich langsm, vorallem wenn man schon weiss, das nur eine Schleife braucht 1ms. Das ist der Grund, warum ich diesen Weg nicht umgehen moechte. Ich moechte die Bearbeitung in RealTime realisieren, mehr Samples zu erhalten (mehr als 2500 Samples/s pro Sensor)
Bist du sicher ? Ich kenn mich mit LabView nicht aus, aber ein Atmega8 ist schneller als LabView auf aktueller PC Hardware ?? Kann ich kaum glauben.
>LabView braucht langer fuer die Berechnung. Ich kenne mich mit LabView zwar nicht aus, aber LabView läuft doch auf einem PC. Und ich kann mir nicht vorstellen, dass ein PC langsammer rechnet, als ein ATmega. >Die Karte in sich ist sehr schnell, aber die Bearbeitung ist ziemlich >langsm, vorallem wenn man schon weiss, das nur eine Schleife braucht 1ms. Was meinst du hier mit "Bearbeitung"? Was ist eine Schleife. Wie gesagt, ich kenne mich mit LabView nicht aus.
Oh, habe das Posting vor mir nicht gesehen. Hab fast gleiches geschrieben.
Labview ist eine Kruecke, und deren Karten noch mehr. National Instruments hat eine DigitalIO Karte, fuer sehr viel Geld. Die ist aber trotz PCI und dem ganzen Scheiss langsamer wie ein Mega8....
LabView wird doch bestimmt die Werte aus einer z.B. txt-Datei lesen können. Dann sende die Daten vom Controller über RS-232 zum PC und lege sie in einer Datei ab, auf die LabView dann zugreifen und die Werte einlesen kann. Du brauchst dann halt eine Funktion, die die double-Werte für die Übertragung in Zahlen in ASCII-Code umwandelt.
Kann mir auch nicht vorstellen, dass LabView langsamer ist... Aber wenn, dann mach den AtMega an die RS 232 Schnittstelle, Labview kann dann direkt darauf zugreifen, ohne Umwege über txt Datei o.ä.
Schon mal ausprobiert, was beim LabView so langsam ist? Wahrscheinlich wird es der Display-Update sein. In dem Fall hilft es auch nichts die Übertragung möglichst kompliziert zu machen. Ich geh da mit den anderen. Ich kann nicht glauben, dass ein Mega8 mit 10Mhz und ohne FPU schneller rechnen kann als eine 3Ghz 32-Bit Maschine mit FPU.
habe ich es auch am Anfang gedacht, leider die Berechnung hat gezeigt, dass LabView langsammer ist. Wenn Du Cosinus und Sinus rechnen willst (unter labview, dafuer brauchst Du natuerlich die Amplitude und Phase), dann sollst zuerst diese Variablen messen bzw. berechnen, die mit der Zeit schnell aendern. Dafuer brauchst Du ein paar Samples, um auf diese Variablen zu kommen. Nimmst Du einen kleinen Anzahl der Samples, wird Dein CPU belastet. Nimmst Du einen grossen Anzal der Samples, wird Dein CPU entlastet, ABER Deine Berechnungen werden nicht exakt. Wenn Du schnell mit dem Sensor pruefst, bekommst keine schoene Darstellung der Daten. Die Kurven werden abgehackt, ich meine die Abstand zwischen 2 Punkten ist groesser als bei einem langsamen Pruefung. Nur diese Prozedur verlangt viel Zeit und sieht deutlich auf die Kurven.
Wie ermittelst du denn die Werte (Real- und Immaginaerteil) aus deinem analogen Signal?
ich habe eine analog Schaltung entwickelt, die mir die Phase und Amplitude ermitteln koennen, die ich weiter mit ADC unter Microcontroller als Real und Imag. bearbeiten kann.
Also deine analoge Schaltung liefert dir zwei anologe Signale, von denen eins ein Maß für Amplitude und das andere ein Maß für Phase ist. Diese analogen Signale digitalisierst du mit dem ADC des Atmega8 und aus den digitalen Werten berechnest du dann den Realteil und den Imaginärteil des Signals. Habe ich es richtig verstanden? Du hast aber eine PCI-Karte, mit der du die analogen Signale auch digitalisieren kannst. Du sagst aber, dass es zu lange dauert, die Prozedur statt mit dem Controller gleich mit der Karte und LabView zu machen. Was dauert denn so lang, die A/D-Wandlung, die Kommunikation der Karte mit LabView, die Umrechnung von Amplitude und Phase in Real und Imaginär oder was genau?
Du hast es richtig verstanden. am anfang habe ich nur die DifferenzSpuleSpannung und SinusGeneratorSpannung. Aus diesen beiden Signalen musste ich unter LabView die Amplitude und die Phase berechnen und dann die Real und Imag-Teile ermitteln. So richtig. Und weil dies Verfahren langsamer ist, habe ich die Schaltungen entwickelt, die mir die Apmlitude und Phase ermitteln. Eigentlich koennte ich jetzt direkt die Analog-Signale (Amplitude und Phase) zu meiner PCI Karte verbinden und siehe, ob es eine Verzoegerung gibt!! Das werde ich heute machen.
DifferenzSpuleSpannung: die Spannungsdifferenz zwischen 2 Spulen SinusGeneratorSpannung: Die Spannung aus einem Sinusgenerator.
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.