Gast
#2000761
Hi. Ich hab ein Messsystem aufgebaut, dass seine Messdaten per serieller Schnittstelle an einen PC senden soll. Der verwendete µC ist der PIC18F14K50 und an Software benutze ich den C18 Compiler und die Microchip IDE. Mein Problem ist, dass ich auf der PC Seite nicht alle Daten empfange, sondern nur ein Teil davon. Ich vermute den Fehler bei der Seriellen Kommunikation, da der Sensor soweit funktioniert (mit Oszi verifiziert). Am PC kommen nur alle 102 Messwerte an. Der Sendeteil des Programms sieht wie folgt aus: ... char Buffer; char result; OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH,77 ) while(!DataRdyUSART()); //Warten bis Daten empfangen result = ReadUSART(); for (i = 0; i<102;i++) { Buffer = ReceiveValue(); //8- Bit Messwert empfangen while(!TXSTAbits.TRMT); //warten bis bereit zum Senden TXREG = Buffer; // Senden } ... ReceiveValue liefert ein Byte (char) zurück. Zur Kontrolle habe ich in dem Buffer einen festen Wert zugewiesen: Buffer = 'X'; PC seitig sehe ich im Terminalprogramm und auch in Matlab, den Wert 0x53 also 'S'. Habt ihr ne Idee, was ich verbockt habe? Mir fällt langsam nichts mehr ein, woher der Fehler kommt. Vielen Dank schon mal