Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC2300 UART Flow control
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
G_K
При включенном контроле потока когда взводится RTS, невозможно освободить место в буфере его чтением, поскольку постоянно возникает прерывание RBR. Из за этого получается замкнутый круг, в буфер не положить потому что он полон, из буфера не прочитать потому что постоянно в прерывании висим.

Код
switch (UartIntId & 0xF)
  {
  case UART_RX_ERROR_INTERRUPT_ID: // Receive Line Status
  case UART_RX_TIMEOUT_INTERRUPT_ID: // Character Time-out Indicator
  case UART_RX_TRIGGER_INTERRUPT_ID: // Receive Data Available
    // Read the line state of the UART
    tmp = regs->LSR;
    do
    {
      if(tmp & UART_LSR_OE)
      {
        // Overrun Error
        pUartInfo->Data.UartStatus.overrun = 1;
      }
      if (tmp & UART_LSR_BI)
      {
        // Break Indicator
        pUartInfo->Data.UartStatus.break_ind = 1;
      }
      else if (tmp & UART_LSR_FE)
      {
        // Framing Error
        pUartInfo->Data.UartStatus.framing=1;
      }
      else if (tmp & UART_LSR_PE)
      {
        // Parity Error
        pUartInfo->Data.UartStatus.parity = 1;
      }
      // Push a new data into the receiver buffer
      if(ISRRxFreeSize()>0)
      {
        Data = regs->RBR;
        PutRxByte(Data);
      }
      else
      {
        pUartInfo->Data.UartStatus.overflow = 1;
        break;
      }
      // Read the line state of the UART
      tmp = regs->LSR;
    }
    while(tmp & UART_LSR_RDR); // Is the hardware FIFO is empty?

.......

  VICADDRESS=0;              //reset VIC
  return;


Что не так делаю, подскажите?
Danis
Цитата(G_K @ Mar 26 2011, 22:10) *
Что не так делаю, подскажите?


Возможно, в обработчике прерывания нужно скинуть флажок.
G_K
Цитата(Danis @ Mar 26 2011, 21:40) *
Возможно, в обработчике прерывания нужно скинуть флажок.


Да, заработало, спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.