реклама на сайте
подробности

 
 
> LPC2300 UART Flow control, Постоянно висит в прерывании
G_K
сообщение Mar 26 2011, 18:10
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 26-03-11
Пользователь №: 63 900



При включенном контроле потока когда взводится 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;


Что не так делаю, подскажите?

Сообщение отредактировал G_K - Mar 26 2011, 18:12
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01351 секунд с 7
ELECTRONIX ©2004-2016