Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите.(Прерывания)
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Gelo6
07.gif :

Подскажите где ошибка:
Писал на IAR для LPC2368
Обработчик IRQ прерывания и зарегестрировал его но не работает!


__irq void PLL_ISR (void){

VICVECTADDR = 0;
}

VICVECTADDR12 = (unsigned long)PLL_ISR;
VICVECTPRIOR12 = 0x01;
VICINTENABLE = 1 << 12;

В СтартАпе прописал #-0120

не скажите где я ошибся.
спасибо!!
zltigo
Цитата(Gelo6 @ Mar 21 2008, 13:07) *
Писал на IAR..

Это важно? А чип как паяли? Какой припой? smile.gif
Цитата
Обработчик IRQ прерывания и зарегестрировал его но не работает!

В воздухе появляется рука чертящая огненные слова "оно не работает!", или вдруг какие другие симптомчики?
Цитата
__irq void PLL_ISR (void){

Вообще-то обработка прерываний в ARM mode начинается.
__irq __arm void PLL_ISR (void){
Цитата
В СтартАпе прописал #-0120

Это, как я понял для особо догадливых информация? Ну о различии в написании восьмеричных и шестнадцатиричных чисел Вам ведомо?
ldr pc,[pc,#-0x120] // Jump directly to the address given by the AIC

Цитата
не скажите где....

А вообще прерывания разрешить не забыли?

Modeратор:
Тему перенес, как не имеющую отношения к IAR.
Gelo6
VICVECTADDR12 = (unsigned long)PLL_ISR;
VICVECTPRIOR12 = 0x01;
VICINTENABLE = 1 << 12;

Чип напаян не мной на оценочной плате

Поидее после этого в регистре VICIRQSTAT должен быть установлин соответствующий бит но он не устанавливаеся

__irq __arm void PLL_ISR (void){ -- так тоже пробовал но до этоко как я понел он не дошел

А вообще прерывания разрешить не забыли?
Не скажите как?

Заранее Спасибо
zltigo
Цитата(Gelo6 @ Mar 22 2008, 11:46) *
Чип напаян не мной на оценочной плате

Да пошутил я sad.gif
Цитата
Поидее после этого в регистре VICIRQSTAT должен быть установлин соответствующий бит но он не устанавливаеся

"Идей" не надо. Сделайте вменяемый обработчик прерывания, и обеспечте гарантированные условия для его срабатывания.
Цитата
Не скажите как?

__enable_interrupt()
Ну а со 0120 что?
aaarrr
Цитата(Gelo6 @ Mar 22 2008, 11:46) *
Поидее после этого в регистре VICIRQSTAT должен быть установлин соответствующий бит но он не устанавливаеся

Если он не устанавливается, значит и прерывания от источника не поступало. Но можно еще VICRAWINTR для очистки совести посмотреть.
Gelo6
СПАИБО! всё заработало!!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.