Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Hallo,
dank diverser Beiträge in diesem Forum bin ich mit meinem Projekt mittlerweile schon um einiges weiter gekommen! An einer entscheidenden Stelle hänge ich jedoch noch:
Es geht um die Ansteuerung eines PIC18F4550 über USB mit NI Visa. Ich will mit LabWindows die Aus- und Eingänge des PICs schalten und auslesen.
Mittlerweile habe ich es geschafft, die Ausgänge des PICs zu schalten. Ich steuere den PIC über Befehle die ich in den Buffer des Mikrocontrollers übergebe.
Ich habe es aber noch nicht geschafft, den Buffer des PICs auszulesen. Das Senden von Befehlen klappt einwandfrei, aber ich kann keine Rückmeldungen empfangen.
Ich denke das liegt vor allem daran, dass ich nicht die richtigen Funktionen in VISA benutze oder irgendwas vergessen habe. Leider habe ich kaum brauchbare Dokumentation oder Beispiele über die Handhabung von VISA gefunden.
Das Programm bricht immer bei der Codezeile "viBufRead (HandleUSBDAQ, receivebuf, 64, VI_NULL);" wegen eines "unbekannten I/O Fehlers" ab.
Im Anhang befindet sich ein Auszug meines C-Codes. Ich habe aus Übersichtsgründen jetzt nur mal 2 Funktionen reingepackt. Die erste zeigt, wie ich meine Ausgänge schalte. Die zweite Funktion zeigt, wie ich mir vorstelle die Eingänge auszulesen (was aber nicht funktioniert....).
Das sendbuf-Array enthält jeweils die Befehle, die der PIC erhalten muss um die gewünschte Operation auszuführen. Im Moment gehe ich davon aus, das der Mikrocontroller richtig programmiert ist!
In "receivebuf" sollten theoretisch die ausgelesenen Daten des PICs landen.
Ich hoffe mein Problem ist halbwegs nachvollziehbar.
Vielen Dank nochmal für Eure Hilfe! Ohne das Forum hier hätte ich schon längst mein Gerät im nächsten See bestattet ;-)
Mittlerweile habe ich herausgefunden, das ich statt den Funktionen vibufwrite und vibufread auch die normalen Lese- und Schreibfunktionen viwrite und viread verwenden kann.
Ich erhalte damit zumindest eine andere Fehlermeldung:
" Function viRead: (return value == -1073807302 [0xbfff003a]). Die Operation konnte nicht gestartet werden, da die Einstellungen ungültig sind (es liegt ein Konflikt bei den Einstellungen vor)."
Auf Grund diser Fehlermeldung denke ich, dass ich über die Funktion "viSetAttribute" noch irgendetwas festlegen muss. Aber ich hab keine Ahnung was und probiere im Moment ins Blaue hinein rum.
' schrieb:Mittlerweile habe ich herausgefunden, das ich statt den Funktionen vibufwrite und vibufread auch die normalen Lese- und Schreibfunktionen viwrite und viread verwenden kann.
Ich erhalte damit zumindest eine andere Fehlermeldung:
" Function viRead: (return value == -1073807302 [0xbfff003a]). Die Operation konnte nicht gestartet werden, da die Einstellungen ungültig sind (es liegt ein Konflikt bei den Einstellungen vor)."
Auf Grund diser Fehlermeldung denke ich, dass ich über die Funktion "viSetAttribute" noch irgendetwas festlegen muss. Aber ich hab keine Ahnung was und probiere im Moment ins Blaue hinein rum.
Hat jemand eine Idee?
Dann hol ich mal diese 'Leiche' hoch, in der Hoffnung das spetznatz das problem gelöst hat, da ich genau dasselbe habe und absolut keine ahnung mehr, was ich tun soll.