Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > > > Ich möchte via RS232 über den Computer an den Controler (AVR32) senden welche Relais > ab oder aus sein sollen. Habe mich ans beispiel gehelten und so das Ganze aufegabut: > <basic> > Sub Seriel() > Serial_WriteText(UART_PORT, "1 V: 00.00.01 rn") > Do While True > > > > Buffer_Index=0 > sz=0 > > ' Data are available > If Serial_IRQ_Info(UART_PORT,RS232_FIFO_RECV)<>0 Then > > ' Read data > Do While True > Buffer_Index++ > sz=Serial_ReadExt(UART_PORT) > If Buffer_Index>79 Then > Exit > End If > Data_Buffer(Buffer_Index)=sz > AbsDelay(1) > If sz=&H100 Then ' end at zero termination > Exit > End If > End While > > End If > > > ' We have received data > If Buffer_Index>0 Then > Serial_WriteText(UART_PORT, "00001%rn") 'Bestätigung für eingegangene Nachricht > ' Command filter > Select Case Data_Buffer(1) > > 'Kommandos 1, 0 usw. > Case 1: > If Data_Buffer(2)=0 Then 'Verbunden Bestätigung > Verbunden = 1 > Serial_WriteText(UART_PORT, "00005%rn") 'Bestätigung verarbeite Nachricht > ElseIf Data_Buffer(2)=1 Then 'Alle Relais an > R1 = 1 > R2 = 1 > R3 = 1 > R4 = 1 > R5 = 1 > R6 = 1 > R7 = 1 > R8 = 1 > R9 = 1 > R10 = 1 > R11 = 1 > R12 = 1 > RA1 = 1 > Serial_WriteText(UART_PORT, "00005%rn") 'Bestätigung verarbeite Nachricht > ElseIf Data_Buffer(2)=2 Then 'Programm Beenden (Progrmierwerkzeug) > in = 1 > Serial_WriteText(UART_PORT, "00005%rn") 'Bestätigung verarbeite Nachricht > ElseIf Data_Buffer(2)=3 Then 'Alle Relais aus > R1 = 0 > R2 = 0 > R3 = 0 > R4 = 0 > R5 = 0 > R6 = 0 > R7 = 0 > R8 = 0 > R9 = 0 > R10 = 0 > R11 = 0 > R12 = 0 > RA1 = 0 > Serial_WriteText(UART_PORT, "00005%rn") 'Bestätigung verarbeite Nachricht > ElseIf Data_Buffer(2)=4 Then > TrennventilAuf() > Serial_WriteText(UART_PORT, "00005%rn") 'Bestätigung verarbeite Nachricht > ElseIf Data_Buffer(2)=5 Then > TrennventilZu() > Serial_WriteText(UART_PORT, "00005%rn") 'Bestätigung verarbeite Nachricht > > > > Else > Serial_WriteText(UART_PORT, "00002%rn") 'Befehl nicht Verstanden > End If > > 'Kommandos 2, 0 usw > Case 2: > If Data_Buffer(2)=0 Then > R1 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=1 Then > R2 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=2 Then > R3 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=3 Then > R4 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=4 Then > R5 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=5 Then > R6 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=6 Then > R7 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=7 Then > R8 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=8 Then > R9 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=9 Then > R10 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=10 Then > R11 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=11 Then > R12 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=12 Then > RA1 = 1 > Serial_WriteText(UART_PORT, "00005%rn") > > Else > ' Error or unknown command > Serial_WriteText(UART_PORT, "00003%rn") 'Befehl nict Verstanden > End If > 'Kommandos 3, 0 usw > Case 3: > If Data_Buffer(2)=0 Then > R1 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=1 Then > R2 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=2 Then > R3 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=3 Then > R4 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=4 Then > R5 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=5 Then > R6 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=6 Then > R7 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=7 Then > R8 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=8 Then > R9 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=9 Then > R10 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=10 Then > R11 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=11 Then > R12 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > Serial_WriteText(UART_PORT, "00005%rn") > ElseIf Data_Buffer(2)=12 Then > RA1 = 0 > Serial_WriteText(UART_PORT, "00005%rn") > > Else > ' Error or unknown command > Serial_WriteText(UART_PORT, "00003%rn") 'Befehl nict Verstanden > End If > > End Case > > End If > > End While > > > End Sub > </basic> > > So weit so gut... > > > > Fuktioniert sogar, nur Leider ein bischen langsam, ich warte auf dem Programm am Computer > immer auf die Bestätigung, und schicke dann den nexten befehl ab, ich schicke aber nicht nur > wenn sich etwas verändert sonder in dauerschleife, das Heist er geht alle argumente drucht, > wartet nach jedem argument bis eine antwort da ist und schickt dann das nexte. > > wenn die schlefe grade beginnt und das Letzte argument zutrifft bruach es eineige sekunden bis > etwas passiert. Jetzt hatte ich die idee, ich könnte alle argumente auf einmal schicken > > > also: > > 1 1 2 0 3 0 4 0 5 1 > > ___________ > > 1 1 = R1 An > 2 0 = R2 Aus > 3 0 = R3 Aus > 4 0 = R4 Aus > 5 1 = R5 An > > > > > So aber wenn ich das Aktuell so schicke Fuktioniert natrülich nix. aber wie lasse ich den > Controler das Verabrieten? am einfachten were glaube ich wenn ich einen String schicken würde > und diesen in der C-Control Spilitte aber kann der Compiler das? weil Strings gibt es ja nur > Umwege. Und wenn ja wie? > > Oder gibt es sonnst ideen? bin für jede dankbar :)