Forum: Mikrocontroller und Digitale Elektronik Problem Philips LPC UART Trigger - Level


von Philipp (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.