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

 
 
> Проблема с VIC в LPC2478, Непонятная ситуация с зависанием
Dog Pawlowa
сообщение Mar 19 2009, 14:17
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



LPC2478. Третий раз наблюдаю такую фигню при отладке - контроллер висит в прерывании UART, при этом в VICADRESS находится вектор прерывания по таймеру.
Инициализация прерывания таймера:
Код
    T0IR_bit.MR0INT = 1;  // clear pending interrupt
    VIC_SetVectoredIRQ(Timer0IntrHandler,0,VIC_TIMER0);
    VICINTENABLE |= 1UL << VIC_TIMER0;
    T0TCR_bit.CE = 1;     // counting Enable


Инициализация прерывания уарт:
Код
__disable_interrupt();
       VIC_SetVectoredIRQ(UART0Interrupt,1,VIC_UART0);
       VICINTENABLE |= 1UL << VIC_UART0;
    U0IER=1; // receiver only   //      U0IER=2; transmitter only
    __enable_interrupt();


В конце обоих обработчиков VICADDRESS обнуляется, поэтому ситуация, когда в VIC записан один вектор, а контроллер висит в другом прерывании, мне непонятна.
Причем устройства работают днями, отправка в терминал идет по прерываниям, и ничего не сбоит. Эта ситуация наблюдается очень редко, только при старте под JTAGом.
Забить или у меня что-то не то?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post



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

 


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


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