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

 
 
> Помогите.(Прерывания)
Gelo6
сообщение Mar 21 2008, 10:07
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 21-03-08
Пользователь №: 36 107



07.gif :

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


__irq void PLL_ISR (void){

VICVECTADDR = 0;
}

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

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

не скажите где я ошибся.
спасибо!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
zltigo
сообщение Mar 21 2008, 10:41
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(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.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Gelo6
сообщение Mar 22 2008, 08:46
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 21-03-08
Пользователь №: 36 107



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

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

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

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

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

Заранее Спасибо
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 22 2008, 08:56
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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

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

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

__enable_interrupt()
Ну а со 0120 что?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 22 2008, 09:51
Сообщение #5


Гуру
******

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



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

Если он не устанавливается, значит и прерывания от источника не поступало. Но можно еще VICRAWINTR для очистки совести посмотреть.
Go to the top of the page
 
+Quote Post
Gelo6
сообщение Mar 24 2008, 08:11
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 21-03-08
Пользователь №: 36 107



СПАИБО! всё заработало!!!!
Go to the top of the page
 
+Quote Post

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

 


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


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