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

 
 
> Перерывания от USART, AT91SAM7Sxx
Tcom
сообщение Jul 8 2008, 11:19
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792



Генерится непрерывно прерывание по приёму байта, по форуму искал...

Инициализация
Код
    AT91C_BASE_SYS->PIOA_IDR = 0xffffffff;
   // AT91C_BASE_US0->US_IER = AT91C_US_RXRDY;
    //* Disable the interrupt on the interrupt controller
    AT91C_BASE_AIC->AIC_IDCR = 1<<AT91C_ID_US0;
    //* Save the interrupt handler routine pointer and the interrupt priority
    AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US0] = (unsigned int) RX_interrapt;
    //* Store the Source Mode Register
    AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US0] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | 2 ;
    //* Clear the interrupt on the interrupt controller
    AT91C_BASE_AIC->AIC_ICCR = 1<<AT91C_ID_US0;
    
    AT91C_BASE_AIC->AIC_IECR = 0x1 << AT91C_ID_US0;


Обработчик
Код
void RX_interrapt (void)
{


    status = AT91C_BASE_US0->US_CSR;
                status = AT91C_BASE_US0->US_RHR;
    
     AT91C_BASE_US0->US_CR = AT91C_US_RSTSTA;
                 AT91C_BASE_SYS->AIC_EOICR = 0;
}


Срабатывание прерывания проверял брекпоинтом, если убрать брекпоинт, нажать на паузу - продолжить то программа улетает в
Код
__data_handler:
        ldr  pc,[pc,#+24]            ;; Data abort
Go to the top of the page
 
+Quote Post



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

 


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


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