Re: 2. Serielle Schnittstelle funktioniert nicht Kategorie: CC-Pro Unit & Appl.Board (von Jan - 14.02.2012 21:26) | ||
Als Antwort auf Re: 2. Serielle Schnittstelle funktioniert nicht von Hans - 14.02.2012 15:49 | ||
| ||
> > > 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... Erstes Programm: '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 Zweites Programm: '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 | ||
Antwort schreiben Antworten: Re: 2. Serielle Schnittstelle funktioniert nicht (von PeterS - 15.02.2012 12:54) Re: 2. Serielle Schnittstelle funktioniert nicht (von Jan - 18.02.2012 16:17) Re: 2. Serielle Schnittstelle funktioniert nicht (von Hans - 18.02.2012 16:38) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum