Problem Philips LPC UART Trigger - Level

Gast #329246
Lesenswert?

Hallo Leute, ich habe da ein Problem mit der UART meines LPC 214x. Da
ich das Trigger Level wegen dem Empfang von großen Datenpaketen auf 8
character gestellt habe. zwischendurch kommen aber kurze Kommandos (2
character) die ich möglichst schnell und in einem Stück
weiterverarbeiten muss. Deswegen habe ich in der ISR auch den RDA sowie
den CTI case zusammengelegt. jetzt zu meiner Frage:
wenn 2 character empfangen wurden und für die vom Philips spezifizierte
zeit keine weiteren eintreffen beide in einem durchlauf der ISR in einen
Buffer zu schieben?

Hoffe das ich mich nicht zu undeutlich ausgedrückt habe!

Hier noch der wichtige Teil meiner ISR:
void UART0_ISR (void)
{
switch((U0IIR>>1)&0x7)//UOIIR bit 1-3 Interrupt Status
...
case IIR_RDA: // receive data
       vier++;
  case IIR_CTI: // time out
    countCTI++;
    do
    {
      countDo++;
      pUartBuf->RxBuf[pUartBuf->RxTailPoint] = U0RBR;

       if (++pUartBuf->RxCount > RXBUFSIZE)//!RxCount++
       {
         pUartBuf->RxHeadPoint = pUartBuf->RxTailPoint;
         pUartBuf->RxFlag |= RC_FIFO_OVERRUN_ERR;
       }
       pUartBuf->RxTailPoint = (pUartBuf->RxTailPoint+1)%RXBUFSIZE;
    }
    while (U0LSR & IIR_RDA);// hier fehlt die passende Bed.

Gruß und Dank im Vorraus
Philipp

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren