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!
Habe mal meine Datei angefügt, vielleicht hilft es zu einer schnelleren Klärung bei und gegen Missverständnisse.
Ich habe immernoch Probleme damit, dass die Bytes, die vom Atmega gesendet werden, nich richtig eingelesen werden in LabView. Meine Vermutung wäre jetzt, dass das ein Synchronisationsfehler ist. Deswegen habe ich die Delaybuttons eingebaut. Leider bis jetzt kein Erfolg.
Ich habe eine Reihe von LEDs angeschlossen, um die Ausführung zu testen. Die erste LED leuchtet hin und wieder, also manchmal bekommt LabView die geforderten Bytes und manchmal nicht. Die anderen LEDs brennen aber nie, weil er da nie die geforderten Bytes am Port erhält. Vielleicht noch wichtig zu erwähnen, dass das Problem direkt bei dem ersten Eigenschaftknoten auftritt.
Weiß einer Rat? Liegt es an der Synchronisation oder hat es eine andere Ursache?
Wieso hat deine For-Schleife 9 Durchläufe? Du könntest doch der Einfachheit halber hingehen und einfach das Bool'sche Array autoindizieren lassen. Das würde den forderen Teil erheblich vereinfachen und beschleunigen.
Zu deinem eigentlichen Problem kann ich leider nichts sagen ... tut mir leid, mit VISA kenn ich mich so absolut nicht aus.
"BytesAtPort" ist vollkommen überbewertet! Vor allen Dingen, wenn man als Abbruchbedingung schon ein einzelnes Zeichen als Antwort akzeptiert!
- Suche hier im Forum nach Threads zur seriellen Schnittstelle. Lucki hat schon mehrfach sehr gut die Vorgehensweise erläutert!
- Räum dein VI auf, das BD ist viel zu groß...
- Nutze Autoindexing!
Zitat:Hallo Dinin,
"BytesAtPort" ist vollkommen überbewertet! Vor allen Dingen, wenn man als Abbruchbedingung schon ein einzelnes Zeichen als Antwort akzeptiert!
Warum ist das überbewertet? Wie soll ich denn aber sonst die Kommunikation abwickeln?
Zitat:- Räum dein VI auf, das BD ist viel zu groß...
Was meinst du mit BD?
Zitat:- Nutze Autoindexing!
Was ist das und wozu ist das gut bzw. besser geeignet als...[/quote]
Habe mir einiges durchgelesen und bin so schlau wie vorher. Viele verscheidene Problem, viele verschiedene Lösungen. Das Problem ist bei vielen, dass die Bytes zwar anliegen aber nich ausgelesen werden, weil was mit der Syncronisation nich stimmt. Das hatte ich ja schon vermutet. Wie ich das behebe, mit einem Delay. Funktioniert bei mir nicht. Vielleicht kann mir jemand mal ne spezielle Antwort zu meinem Programm geben und nich immer auf andere verweisen. Habe auch na Lucki gesucht, aber zum laufen hab ich es immer noch nich bekommen.
Ich habe das mal umgebaut und die Bytes am Port Geschichte rausgeschmissen, einfach nur die Befehle durchjagen. Funktioniert leider auch nicht. Weiß einer warum nich mal das geht? Laut Hyperlight kommen die richtigen Befehle. (datei Versuche 4)
Dann habe ich versucht das ganze zu entzerren und es, pro Knopf, in ein eigenes Case zu stecken. Das funktioniert auch, allerdings nur bis ich mehr als 2 Cases einfüge. Bei 3 oder mehr stürzt das Programm ab. Warum ist das so?(datei Versuche 3)
Bin langsam echt bissle am verzweifeln hier, mir läuft auch die Zeit weg. Wenn einer ne Alternative hat mache ich es auch gern anders. Hauptsache am Ende werden meine 7 Ventile an/aus geschaltet. Kann doch nich so kompliziert sein das Ganze. Böde Kommunikation.
Als erstes musst du dir darüber klar werden, was du überhaupt machen willst. Danach sollte deine Frage klar formuliert sein. Ich hab mir mal dein ungetüm von Blockdiagramm angetan und habe sehr viel Verbesserungspotential feststellen müssen. Ich habe es nun ein wenig Übersichtlicher gestaltet, ohne dabei die Funktionalität zu beeinflussen.
Da ich aus deinem Text nicht schlau wurde, hab ich mal überlegt und gegrübelt. Danach bin ich zu dem Schluss gekommen, dass du eventuell Probleme damit hattest, alle deine Schreibbefehle zu vollenden, bevor du die Referenz gekillt hast.
Dieser Fehler sollte nun behoben sein.
MfG Carsten
27.01.2012, 14:37 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2012 14:38 von Dinin.)
Zitat:Ich habe es nun ein wenig Übersichtlicher gestaltet, ohne dabei die Funktionalität zu beeinflussen.
es funktioniert auch nich.
Aber vielen Dank, übersichtlicher ist es tatsächlich. Habe es jetzt nach deinem Vorbild umgebaut, du hattest einen kleinen Denkfehler drin, und es funktioniert jetzt tatsächlich. Leider in abgespeckterer Version, als im C - Code gedacht, aber es funktioniert. Bin Dir und allen anderen Helfen, die einen Rat hatten tausendfach dankbar!!!!!!!!
Zitat:Danach bin ich zu dem Schluss gekommen, dass du eventuell Probleme damit hattest, alle deine Schreibbefehle zu vollenden, bevor du die Referenz gekillt hast.
Um das nochmal zu klären, damit ich den Fehler nich mehr mache oder mein Programm vielleicht doch noch erweitert bekomme. Es liegt also daran, dass die Syncronisation nich funktionert oder nicht!? A schickt was, aber B ist noch nich bereit dafür und es rauscht unbenutzt vorbei. Das Problem hast du jetzt einfach gelöst, weil du Arrays eingebaut und das Array direkt in ein String umgewandelt hast? Es sieht so einfach aus und gar nicht so viel anders als einer meiner 100 Versuche.