Hallo, ich habe einen ATmega1284P und habe eine Kommunikation mit UART programmiert über eine RS232 Schnitstelle und LabVIEW. Das Betriebssystem ist Win 7 Professional. Die Kommunikation mit dem Mikrocontroller und einem Terminal funktioniert reibungslos. Sobald ich jedoch Befehle in LabVIEW eingebe und abschicke, reagiert er erst nachdem wirklich 40 Zeichen geschickt worden sind, "\r\n" haben keine Wirkung. Woran könnte das liegen?
Er hat ja geschrieben, dass es mit dem Terminal ganz normal funktioniert. Was hat das also mit der Software im uC zu tun?
> "\r\n" haben keine Wirkung. > Woran könnte das liegen? Du gibst jetzt aber nicht im Labview \r\n ein. Oder doch?
Karl Heinz Buchegger schrieb: >> "\r\n" haben keine Wirkung. >> Woran könnte das liegen? > > Du gibst jetzt aber nicht im Labview \r\n ein. Oder doch? Ja, ich habe gedacht das diese Zeichenfolge den Befehl im Mikrocontroller abschließt.
Was ich in das Senden Feld in LW eingebe sieht folgendermaßen aus: getvalue00000000000000000000000000000000 danach erhalte ich einen Spannungswert zurück. mit getvalue\r\n reagiert er nicht. Er reagiert erst nachdem 40 geschickt worden sind.
\r\n ist nur eine Darstellung für die Zeichen 13 und 10. Carriage Return und Line Feed
> Ja, ich habe gedacht das diese Zeichenfolge den Befehl im > Mikrocontroller abschließt. Der ist gut ! Ne mal ernst das sind steuercodes in C auch Escape-Sequenz gennant. http://de.wikipedia.org/wiki/Escape-Sequenz
Hat jemand einen Vorschlag wie man diesen Befehl in LabVIEW generieren könnte? Ich bin LabVIEW Anfänger.
André R. schrieb: > Er hat ja geschrieben, dass es mit dem Terminal ganz normal > funktioniert. Was hat das also mit der Software im uC zu tun? sie sendet nichts, also liegt es an der Software.
Scheinbar antwortet die Software bei allem was er über das Terminal schickt. Nur übre Labview antwortet er nicht. Ich begreif immer noch nicht was es mit der Software zu tun hat. UART bleibt UART und wenn UART funktioniert funktionierts auch. Die Frage ist hier wohl eher wie man Labview sagen kann, dass ein CR und LF mitgesendet wird und wie man das macht.
André R. schrieb: > Ich begreif immer noch > nicht was es mit der Software zu tun hat. man kann in die software programmieren das sie auch auf die 2 zeichen "\n" reagiert, dann würde es auch so gehen.
Klar würde es dann gehen er kann auch hingehen und das ding so programmieren das ein beliebiges zeichen das ende des Strings darstellt. Aber die Software scheint ja auf das CR/LF zu warten und da muss es doch eine Lösung geben wie Labview den String von sich aus schon abschliesst. Schliesslich soll Software auch so programmiert sein, dass sie überall funktioniert. Und der Nutzer soll sich auch nicht noch einarbeiten in das System und Befehle lernen.
Mµcro schrieb: > Hat jemand einen Vorschlag wie man diesen Befehl in LabVIEW generieren > könnte? > Ich bin LabVIEW Anfänger. Kann ja durchaus sein, dass das in LABVIEW mit genau der gleichen Schreibweise gemacht wird. Die Tatsache, dass du Anfänger bist, entbindet dich nicht davon, dass DU die LABVIEW Doku lesen musst.
Ohne mit Labview gearbeitet zu haben. Wenn du was ins Terminal eingibst wird jedes Zeichen entweder sofort gesendet oder spätestens wenn du Enter drückst. In Lab View wird das Kommando nichte gesendet werden wenn du die beiden MetaZeichen \r\n eingibst. Prüfe doch einfach wann wirklich Daten über die Schnittstelle gehen, ich wette daß die erst nach dem kommpletten Kommando von Labview gesendet werden.
Hallo, Das ist in LabVIEW ganz einfach, du darfst in deinen String nicht \r\n schreiben, denn für \r und \n gibt es eigene Konstanten in der String Palette. Alles was du nun machen musst, ist den String den du schicken willst mit deinen Konstanten zusammenzufügen. Wenn du es nicht findest, kann ich dir auch eine VI schicken, aber leider erst Abends, jetzt habe ich kein LabVIEW zur hand. Das sollte dein Problem lösen ;) Viel Spaß
es gibt in labview konstanten für CR und LF... Programmierung -> String -> Ganz unten (Zeilenvorschub, Wagenrücklauf und beides kombiniert)
habs hingekriegt :D Einfach Rechtsklick aufs Eingabefeld->" '\'-Code- Anzeige " auswählen. Dann funktioniert auch getv\r\n Vielen Dank euch allen.
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.