Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прерывание от системного устройства AT91SAM7X512
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
igorenja
Доброе время суток!
Мне в моём проекте необходимо использовать прерывание от PIT (периодического интервального таймера). Из DS известно, что прерывания от PIT, DBGU_UART и ещё много от чего мультиплексированы на один вход AIC номер 1. Это значит что в обработчике прерывания нужно определять его источник. По логике вещей должен быть регистр считав значение которого можно определить источник прерывания. Вот собственно и вопрос: как называется этот регистр и есть ли он вообще. В принципе у каждого из системных периферийных устройств есть свои регистры статуса в которых поднимаются флаги при наступлении прерывания но этот путь мне как то не очень нравится...
Всем спасибо!
head_sk
Вам нужно поочередно опрашивать статусные регистры каждого из устройств, другого пути нет.
Статустный регистр & Регистр маски прерывания, далее анализируется нужно вам обрабатывать прерывание от конкретного события или нет.
igorenja
Цитата(head_sk @ Aug 24 2009, 17:23) *
Вам нужно поочередно опрашивать статусные регистры каждого из устройств, другого пути нет.
Статустный регистр & Регистр маски прерывания, далее анализируется нужно вам обрабатывать прерывание от конкретного события или нет.

Корявенький метод, на мой взгляд, но если другого пути нет, то придётся так и делать...
Спасибо!
head_sk
Конечно может и есть другой метод, но я его не знаю smile.gif
aaarrr
Цитата(head_sk @ Aug 24 2009, 14:38) *
Конечно может и есть другой метод, но я его не знаю smile.gif

Нет другого способа. И ничего сильно корявого тоже - обычно разбирать приходится DBGU и PIT, а RSTC, WDT, PMC и особенно RTT могут обойтись без прерываний.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.