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

 
 
> AT91SAM3U4E Прерывания
MiklPolikov
сообщение Jan 28 2011, 07:01
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Мне одному кажется, что в документации на AT91SAM3U4E система прерываний описана крайне скупо ?
Ни описания битов в регистрах, ни описания работы прерываний в целом.

Может я не туда смотрю ? Глава "13 ARM Cortex® M3 Processor " в ней на стр 167 "13.19 Nested Vectored Interrupt Controller"
Или может ещё где можно почитать ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DpInRock
сообщение Jan 28 2011, 17:56
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



стр. 182


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 29 2011, 00:48
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Почему относящиеся к NVIC регистры ISER ICER ISPR ... не прописаны в библиотеках, которые идут вместе с Keil , например AT91SAM3U4.h ?


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 29 2011, 09:00
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(MiklPolikov @ Jan 29 2011, 03:48) *
AT91SAM3U4.h ?

Если это атмеловский заголовок, то все там замечательно приписано.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 30 2011, 12:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



В примере атмела прерывание настраивается вот такой функцией

Код
IRQ_ConfigureIT(AT91C_ID_RTT, 0, RTT_IRQHandler);


RTT_IRQHandler - функция обработчик .
Она хоть и передайтся в IRQ_ConfigureIT, нотам ни как не используется. Выходит , это работать не будет ?! Может кто-нибудь дать работающий пример ?


Код
void IRQ_ConfigureIT(
    unsigned int source,
    //unsigned int preemptionPriority,
    //unsigned int subPriority,
    unsigned int priority,
    IntFunc handler)
{
    unsigned int priGroup = __NVIC_PRIO_BITS;
    unsigned int nPre = 8 - priGroup;
    unsigned int nSub = priGroup;
    unsigned int preemptionPriority;
    unsigned int subPriority;
    unsigned int IRQpriority;

    preemptionPriority = (priority & 0xff00) >> 8;
    subPriority = (priority & 0xff);

    // Disable the interrupt first
    NVIC_DisableIRQ((IRQn_Type)source);

    // Clear any pending status
    NVIC_ClearPendingIRQ((IRQn_Type)source);

    // Configure interrupt handler
    //if (handler == 0) handler = IrqHandlerNotUsed;
      //  GetExceptionTable()[NVIC_IRQ_HANDLER_INDEX + source] = handler;

    if (subPriority >= (0x01 << nSu)
      subPriority = (0x01 << nSu - 1;
    if (preemptionPriority >= (0x01 << nPre))
      preemptionPriority = (0x01 << nPre) - 1;

    IRQpriority = (subPriority | (preemptionPriority << nSu);
    NVIC_SetPriority((IRQn_Type)source, IRQpriority);
}


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post



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

 


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


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