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

 
 
> Вопрос по AT91SAM7Sxx, прерывания от PIT и RTT
40in
сообщение Oct 7 2005, 06:43
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 22-07-05
Пользователь №: 7 010



Разбираюсь с отладочной платой AT91SAM7S61-IAR. Возникла проблема с прерываниями от PIT таймера. Делаю примерно следующее:
...
//* Open the interrupt on the AIC
AT91F_AIC_ConfigureIt ( pAic, AT91C_ID_SYS, SOFT_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED, aic_software_interrupt);
AT91F_AIC_EnableIt (pAic, AT91C_ID_SYS);
...
AT91F_PITInit (AT91C_BASE_PITC, PIT_CONST, MCKMHz);
AT91F_PITEnableInt (AT91C_BASE_PITC);
...

Прерывания генерятся только после
AT91F_AIC_Trig (AT91C_BASE_AIC, AT91C_ID_SYS) ;

PIT таймер работает. При просмотре сотояния регистров соответствующие флаги pend. int. установлены. Прерывания от других периферийных устройств приходят.
В чем я неправ?

P.S. Использую IAR 4.30.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
xoms
сообщение Oct 7 2005, 07:40
Сообщение #2


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

Группа: Свой
Сообщений: 124
Регистрация: 20-06-04
Пользователь №: 67



Т.е мои ответы не дали результата.

Я до них дошёл следующим образом. Останавливался на брейкпойнте где-нибудь в программе и у меня был открыт дамп памяти (адреса как раз регистров таймера). Толкал программу дальше и прерывания появлялись, так я нащупал те регистры которые надо читать ,что бы не было такого глюка.
Go to the top of the page
 
+Quote Post
40in
сообщение Oct 7 2005, 08:14
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 22-07-05
Пользователь №: 7 010



Да результат отрицательный ... Причем не повлияло никак на RTT и на PIT. Не может быть каких-нибудь глюков связанных с IARом? Я нашел пример для Keil - там делается все то же самое....
Go to the top of the page
 
+Quote Post
xoms
сообщение Oct 7 2005, 09:08
Сообщение #4


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

Группа: Свой
Сообщений: 124
Регистрация: 20-06-04
Пользователь №: 67



У меня прерывание сконфигурировано так
AT91F_AIC_ConfigureIt ( pAic, AT91C_ID_SYS, SOFT_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE,
aic_software_interrupt);
Go to the top of the page
 
+Quote Post
40in
сообщение Oct 7 2005, 13:10
Сообщение #5





Группа: Новичок
Сообщений: 7
Регистрация: 22-07-05
Пользователь №: 7 010



Решение оказалось очень простым: в самом начале main втавил строку AT91C_BASE_AIC->AIC_EOICR = 0x0 smile.gif
Go to the top of the page
 
+Quote Post
Pat
сообщение Oct 7 2005, 14:01
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Цитата(40in @ Oct 7 2005, 16:10)
Решение оказалось очень простым: в самом начале main втавил строку  AT91C_BASE_AIC->AIC_EOICR = 0x0 smile.gif
*

В догонку, нечто подобное я описывал тут
http://forum.electronix.ru/index.php?showtopic=8187
Go to the top of the page
 
+Quote Post
40in
сообщение Oct 7 2005, 19:44
Сообщение #7





Группа: Новичок
Сообщений: 7
Регистрация: 22-07-05
Пользователь №: 7 010



Я уже видел это сообщение. Поправил файл. Но окончательно все заработало (вроде smile.gif ) тока после добавления а main строки.
Go to the top of the page
 
+Quote Post

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

 


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


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