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

 
 
> Проблема с UART SAM7X256, зависает в прерывании
Alexey V.
сообщение Oct 26 2006, 08:37
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 10-05-06
Из: Russia, Tomsk
Пользователь №: 16 936



Отладочная плата: AT91SAM7X-EK
Запускаю УАРТ (9600, 8,1, без четности) (прерывание RXRDY), в обработчике прерывания заворачиваю данные.
Запускаю TESTCOM. Первые секунд десять все идет отлично (что отправили, то и получили), затем контроллер подвисает (причем, блок уарта продолжает работать, но раз в секунду теряя 1 символ). Такое ощущение, что где-то что-то переполняется...

код иницииализации уарта:
Код
void InitUart(void)
{
    //отключаем пины USART0
    AT91C_BASE_PIOA->PIO_PDR = PA1 | PA0;


    AT91C_BASE_SYS->AIC_SVR[AT91C_ID_US0] = (INT32U) UartIrqHandler;
    //растановка приоритета прерывания
    AT91C_BASE_SYS->AIC_SMR[AT91C_ID_US0] = 0x63; // SRCTYPE=1, PRIOR=3. USART 0 interrupt positive edge-triggered at prio 3 //0x02;
    //разрешение прерывания по Timer 1
    AT91C_BASE_SYS->AIC_IECR = (1<<AT91C_ID_US0);
    AT91C_BASE_SYS->AIC_ICCR = (1<<AT91C_ID_US0);


    *AT91C_US0_BRGR = 625;
    *AT91C_US0_MR = 0x000808C0; // Normal mode, 1 stop bit, no parity, async mode, 8 bits, MCK.
    *AT91C_US0_IDR = 0xffffffff; // Disable all USART interrupts
    *AT91C_US0_IER = AT91C_US_RXRDY;

    *AT91C_US0_CR = AT91C_US_RXDIS | AT91C_US_TXDIS;
    *AT91C_US0_CR = 0x0000010c; // Reset status bits, reset rx/tx.
    *AT91C_US0_CR = AT91C_US_RXEN | AT91C_US_TXEN;
    *AT91C_PMC_PCER = (1 << AT91C_ID_US0);
}


код обработчика прерывания:
Код
void UartIrqHandler(void)
{
    INT8U Tmp = *AT91C_US0_CSR;
    INT8U Data;

    //AT91C_BASE_AIC->AIC_IVR = 0;
    //AT91C_BASE_AIC->AIC_ICCR  = (1 << AT91C_ID_US0);

    Data = *AT91C_US0_RHR;

    do
    {
        Tmp = *AT91C_US0_CSR;
    } while ((Tmp & 0x02) == 0);

    *AT91C_US0_THR = Data;

    Main.Led1Blink = 1;
    
    AT91C_BASE_AIC->AIC_EOICR = 0;            // Signal end of interrupt
}
Go to the top of the page
 
+Quote Post



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

 


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


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