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 User, > > > > > > > > ich habe folgendes Problem bei der Datenübertragung zwischen zwei Pro Application Boards (ein Sender, > > > > ein Empfänger): > > > > Wenn ich beide Boards über die 1. Schnittstelle (Serport 0) verbinde, kommen die Daten an. > > > > Wenn ich die 2. Schnittstelle (Serport 1) nutze, nicht. > > > > Ich benutze J4 als Anschluß für die 2.Schnittstelle, TxD Board 1 ist an RxD Board 2 angeschlossen und > > > > umgekehrt. GND sind miteinander verbunden. An den Lötstellen von J4 gemessen besteht entsprechende > > > > Verbindung. > > > > Auf beiden Boards kann ich im Ruhezustand (ohne Verbindungskabel) zwischen TxD und GND ~9V messen. > > > > Die Jumper für Port D2 und D3 stecken. > > > > Das Kabel ist kürzer als 1m bei einer Baudrate von 19200. > > > > Beim Anpassen der beiden Programme habe ich bei der Initialisierung und den Befehlen jeweils für > > > > Serport die 0 durch eine 1 ersetzt. > > > > > > > > Weiß jemand Rat? > > > > > > > sprüh mal kontakt spray in die steckleiste des Prozessors.............. > > > > > > > Gruß, Jan > > > > schick doch mal n beispielprogramm, damit wir einen programmierfehler ausschließen können...... > > Hallo Hans, > hier die beiden Programme. > Wenn ich serport als 0 setze und die beiden Boards über die serielle Schnittstelle 1 verbinde, > kommen die Daten einwandfrei an. Der Zustand der LEDs und die Anzeige sind identisch. > Bei serport = 1 und Verbindung über die 2. serielle Schnittstelle nicht. > Der Cursor im Display des 2. Boards blinkt dann nur als Unterstrich... > > <u>Erstes Programm:</u> > > 'Programm dient zur Probe für ein größeres Projekt, bei dem Daten zwischen > 'mehreren Mega128 ausgetauscht werden sollen. > 'Es sendet 4 Byte über die serielle Schnittstelle an Board 2 > 'Byte 0 = Zustand LED 1 > 'Byte 1 = Zustand LED 2 > 'Byte 2 = zählt aufwärts > 'Byte 3 = 1 > > Dim S(4) = {0,0,0,1} As Byte > #define serport 1 > > Sub main() > Port_DataDirBit(PORT_SW1,PORT_IN) > Port_WriteBit(PORT_SW1,1) > Port_DataDirBit(PORT_SW2,PORT_IN) > Port_WriteBit(PORT_SW2,1) > Port_DataDirBit(PORT_LED1,PORT_OUT) > Port_WriteBit(PORT_LED1,PORT_OFF) > Port_DataDirBit(PORT_LED2,PORT_OUT) > Port_WriteBit(PORT_LED2,PORT_OFF) > Serial_Init(serport,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD19200) > LCD_Init() > LCD_ClearLCD() > LCD_CursorOff() > > Do While True > S(0) = Port_ReadBit(PORT_SW1) > S(1) = Port_ReadBit(PORT_SW2) > S(2) = S(2) + S(3) > LCD_Locate(1,1) > LCD_WriteWord(S(0),3) 'Anzeige Wert von SW1 > Port_WriteBit(PORT_LED1,S(0)) 'Kontrolle der Eingabe SW1 per LED > LCD_Locate(2,1) > LCD_WriteWord(S(1),3) > Port_WriteBit(PORT_LED2,S(1)) > LCD_Locate(1,6) > LCD_WriteWord(S(2),3) > LCD_Locate(2,6) > LCD_WriteWord(S(3),3) > Serial_Write(serport,S(0)) > Serial_Write(serport,S(1)) > Serial_Write(serport,S(2)) > Serial_Write(serport,S(3)) > End While > > End Sub > > <u>Zweites Programm:</u> > > 'Programm dient zur Probe für ein größeres Projekt, bei dem Daten zwischen > 'mehreren Mega128 ausgetauscht werden sollen. > 'Es empfängt 4 Byte über die serielle Schnittstelle von Board 1 > 'Byte 0 = Zustand LED 1 Board 1 > 'Byte 1 = Zustand LED 2 Board 1 > 'Byte 2 = zeigt Byte 2 von Board 1 an > 'Byte 3 = zeigt Byte 3 von Board 1 an > > Dim S(4) As Byte > #define serport 1 > > Sub main() > Port_DataDirBit(PORT_LED1,PORT_OUT) > Port_WriteBit(PORT_LED1,PORT_OFF) > Port_DataDirBit(PORT_LED2,PORT_OUT) > Port_WriteBit(PORT_LED2,PORT_OFF) > Serial_Init(serport,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD19200) > LCD_Init() > LCD_ClearLCD() > LCD_CursorOff() > > Do While True > S(0) = Serial_Read(serport) > LCD_Locate(1,1) > LCD_WriteWord(S(0),3) > Port_WriteBit(PORT_LED1,S(0)) > S(1) = Serial_Read(serport) > LCD_Locate(2,1) > LCD_WriteWord(S(1),3) > Port_WriteBit(PORT_LED2,S(1)) > S(2) = Serial_Read(serport) > LCD_Locate(1,6) > LCD_WriteWord(S(2),3) > S(3) = Serial_Read(serport) > LCD_Locate(2,6) > LCD_WriteWord(S(3),3) > End While > > End Sub > > Ich hoffe, Du oder jemand anderes findet den Fehler, warum der Datenaustusch nur über die 1.ser. > Schnittstelle funktioniert. > > Gruß, Jan