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

 
 
> ISR & VIC мутная документация +, LPC2292
Ken@t
сообщение Aug 24 2005, 06:18
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 144
Регистрация: 5-08-05
Пользователь №: 7 382



sad.gif Кто так пишет юзер мануал... Конечно за пару часиков, разобрался с программированием VIC и перываниями , но.. остался осадок... blush.gif
И так, уарт подключен к каналу 6 ВИКа . я так понимаю , что

VICIntSelect_bit.INT6 &=~1;
// Тип вектора прерывания для слота 6 (UART) IRQ !
VICVectAddr0 = (unsigned int)&UART0Interrupt;
// Адрес процедуры обработки прерывания, так как пишем в 0 вектор - имеем самый высокий приоритет.
//
VICVectCntl0_bit.NUMBER = VIC_UART0;
// Вот здесь /\ на 0 вектрое имеем прерывание от канала 6 ?
VICVectCntl0_bit.ENABLED = 1;
// Прерывание разрешено. канал 6 за UART 0
VICIntEnable_bit.INT6 = 1;
// Прерывание разрешено

В результате мы имеем 15 векторов от вика и 27 различных прерываний от перефирии, то есть одновременно только половину можем поиметь реальных , а как же тогда остальные ? причём часть из них под ФИК...

Далее совсем мутно для меня, есть прерывание SWI и в тоже время от вика SWI ( Канал 1 )
Какие комманды отвечают за их генерацию ?

Вектор по умолчанию
VICDefVectAddr = (unsigned int)&DefDummyInterrupt;
В каких случаях вызывается ? в тех, когда произошло прерывание и нет вектора закреплённого за каналом ? В таком случае это программная ошибка или намеренно обработка разных прерываний в одной функции , тогда мне не понятно как это запрограммировать...

вот обработка irq
{
void (*interrupt_function)();
unsigned int vector;

vector = VICVectAddr; // Получить адрес вектора прерывания
interrupt_function = (void(*)())vector; // преобразовать в функцию
(*interrupt_function)(); // Вызвать функцию векторного прерывания

VICVectAddr = 0; // Очистить вектор прерывания в VIC.

}

а как сделать реентерабельность прерываний?

сенькс за ответы..


--------------------
Свет мой зеркальце, скажи, да всю правду расскажи я ль на свете всех тупее, бесполезней и пьянее?
Ты - придурок. Спору нет! Но живет на белом свете вот ТАКИХ еще две трети!
Go to the top of the page
 
+Quote Post



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

 


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


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