Hallo zusammen,
Ich bin neu hier, habe schon von Anfang an einen superguten Eindruck!

Zudem habe ich ein Problem.
Ich will Daten von einem Funkempfänger (einer Wetterstation) auslesen, der eine RS-232-Schnittstelle hat. Das programm ist in C geschrieben (MPLAB 6.6, C18 Compiler). Für die nötigen Pegel sorgt ein MAX232ACPE.


Nun, um den Code ein bisschen zu erklären:
Um die "Verbindung" herzustellen, muss DTR High sein und RTS Low. Das Programm wartet, solange keine Daten ankommen. Steht die Verbindung, sollte der Wert $03 (ETX) ankommen und wird in "store" gespeichert.
Dann schicke ich 5 Byte Daten, das sind Einstellungen, deren Bedeutung sollte euch nicht stören. Ist die Einstellung erfolgt, sendet der Funkempfänger laut Theorie den Wert $06 (ACK), der dann in "store2" gespeichert werden sollte.

Hier der Code:

Code:
#pragma code							// definiert, dass der Code ausführbare Befehle enthält
void main(void){
	InitPeripherals();			// benutzte Ports initialisieren

  OpenUSART(USART_TX_INT_OFF &
            USART_RX_INT_OFF &
            USART_ASYNCH_MODE &
            USART_EIGHT_BIT &
            USART_CONT_RX &
            USART_BRGH_LOW, 64);

  store = 0;
  store2 = 0;
  PORTC_DTR = 0;



/*Initialisiertung der Wetterstation(Empfänger)*/

  PORTC_RTS = 0;                //clear RTS (RC5)
  PORTC_DTR = 1;                //set DTR (RC4)


while (!DataRdyUSART());    // warten, solange keine Daten ankommen

    store = ReadUSART();        // Get the character received from the USART */
    while (BusyUSART()); 



  while (TRUE){

    // Display a prompt to the USART

    putcUSART ((const far rom char *)  0x01 );  // SOH
    while (BusyUSART());

    putcUSART ((const far rom char *)  0x36 );  // d 6
    while (BusyUSART());

    putcUSART ((const far rom char *)  0xC9 );  // d 201
    while (BusyUSART());

    putcUSART ((const far rom char *)  0x10 );  // zeit in min.: 10
    while (BusyUSART());

    putcUSART ((const far rom char *)  0x04 );  // EOT
    while (BusyUSART());


 
    while (!DataRdyUSART());   // warten solange keine Daten ankommen

    store2 = ReadUSART();    // Get the character received from the USART
    while (BusyUSART()); 
  }


  CloseUSART();
}

Problem:
Ich bekomme entweder gar keine Werte oder dann falsche.

Kann mir jemand helfen?
Das wäre einfach genial, denn ich studiere und probiere schon lange habe nicht mehr ewig Zeit. Aber mal eins nach dem andern


Mit freundlichen Grüssen, mi.ja