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

 
 
> NXP LPC1114 Проблемы с UART, Или я что-то не так настроил или это глюк контроллера.
Рашпиль
сообщение Feb 9 2011, 14:37
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 9-02-11
Из: Украина, Харьков
Пользователь №: 62 830



Столкнулся со следующей проблемой в контроллере LPC1114 фирмы NXP.
Работаю с UART. Разрешил прерывание THRE. Данное прерывание должно наступать когда передающий буфер FIFO пуст.
Но мною было обнаружено что данное прерывание наступает немного раньше и из-за этого мне пришлось вставить задержку. Без задержки байты накладывались друг на друга.

Вот код обработчика прерываний UART:
Код
void UART_IRQHandler(void){
    unsigned long valueIIR;
    unsigned char buffer;

    valueIIR = LPC_UART->IIR >> 1;
    valueIIR &= 0x07;

    switch (valueIIR){
        case 1:     // THRE Interrupt
            UART_HandlerTXInterrupt();
            break;
        case 2:     // Receive Data Available (RDA)
            buffer = LPC_UART->RBR;
            //UART_sendByte(0x11);
            break;
        case 6:     // CTI
            buffer = LPC_UART->RBR;
            //UART_sendByte(0x22);
            break;
        default:
            buffer = LPC_UART->RBR;
            break;

    }
    
}


void UART_HandlerTXInterrupt(void){
    unsigned char valueLSR;
    unsigned char delay = 5;

    valueLSR = (unsigned char)LPC_UART->LSR;
    
    if ((Uart.numberTX > 0) && (CHECKBIT(valueLSR, 5))){
        while(delay--);
        LPC_UART->THR = *Uart.ptrTXBuffer;
        Uart.numberTX --;
        if (Uart.numberTX > 0){
            Uart.ptrTXBuffer ++;
        }
    }
}


Это черновик кода. Критиковать не нужно.

Кто-нибудь сталкивался с такой проблемой?


--------------------
Жизнь - не те дни, что прошли, а те, что остались.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 03:44
Рейтинг@Mail.ru


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