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

 
 
> Прерывания SAM
beer_warrior
сообщение Jun 3 2006, 21:55
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Написал прием/передачу по USART по прерываниям.
До этого прерывания использовал PIT, на котором базируется системный таймер.
Вызова приема/передачи в теле программы нет, присутствует только сама функция прерывания,
тем не менее программа в это прерывание залетает(включается светодиод), при этом таймер тихо сходит с ума.(Если пишу в AIC_EOICR, зависает, если нет увеличивется частота). Такое впечетление, что влет в оба прерывания происходит по переполнению PIT.
Прерывания конфигурил по AT91F_AIC_ConfigureIt, приоритет PIT = 7, USART = 6.Компилятор gcc, режим ARM, о баге с thumb режимом осведомлен, атрибут прерывания поставлен.
Я что-то не понял в конфигурации AIC? или на выходе из USART Interrupt нужны какие-то танцы?
Помогите ибо день на это уже убил.sad.gif


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Jun 4 2006, 21:51
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(beer_warrior @ Jun 4 2006, 00:55) *
(Если пишу в AIC_EOICR, зависает, если нет увеличивется частота).

Писать AIC_EOICR нужно обязательно.
Зависает возможно из-за того, что в обработчике прерывания вы не читаете регистр US_CSR для идентификации прерывания...
imho трабла не с AIC'ом в общем, а с тем, что AIC'у сообщается о завершении обработки прерывания, а USART'у - нет.
Go to the top of the page
 
+Quote Post



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

 


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


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