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

 
 
> Прерывания от ноги PIOA, AT91SAM7S32
Tcom
сообщение Jul 7 2008, 08:05
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792



Привет! Скажите, можно ли организовать прерывания от любой ноги/ног PIOA.
Проц AT91SAM7S32 и если можно, небольшой примерчик. Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tcom
сообщение Jul 7 2008, 11:26
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792



Получается что когда происходит прерывание от PIO, нада проанализировать на какой ноге 1, и таким образом определять откуда прерывание?
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Jul 7 2008, 13:04
Сообщение #3


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(Tcom @ Jul 7 2008, 15:26) *
Получается что когда происходит прерывание от PIO, нада проанализировать на какой ноге 1, и таким образом определять откуда прерывание?


Надо хранить предыдущее значение PIO, тогда NEW^OLD дадут на какой ноге изменился уровень, а NEW - чему он равен.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 7 2008, 13:18
Сообщение #4


Гуру
******

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



Цитата(_4afc_ @ Jul 7 2008, 17:04) *
Надо хранить предыдущее значение PIO, тогда NEW^OLD дадут на какой ноге изменился уровень, а NEW - чему он равен.

А зачем, если есть PIO_ISR?
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Jul 7 2008, 13:32
Сообщение #5


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(aaarrr @ Jul 7 2008, 17:18) *
А зачем, если есть PIO_ISR?


У меня в sam7s256 почему-то он содержал 1 на всех изменивших своё состояния ногах с момента предыдущего чтения (даже тех, по которым не генерилось прерывание). Поэтому сделал так.

When an input change is detected on an I/O line, the corresponding bit in PIO_ISR (Interrupt
Status Register) is set. If the corresponding bit in PIO_IMR is set, the PIO Controller interrupt
line is asserted. The interrupt signals of the thirty-two channels are ORed-wired together to generate
a single interrupt signal to the Advanced Interrupt Controller.
When the software reads PIO_ISR, all the interrupts are automatically cleared. This signifies that
all the interrupts that are pending when PIO_ISR is read must be handled.

Сообщение отредактировал _4afc_ - Jul 7 2008, 13:37
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Tcom   Прерывания от ноги PIOA   Jul 7 2008, 08:05
- - aaarrr   Можно: Код#define PIN (0x01UL << 0x...   Jul 7 2008, 08:12
- - _4afc_   Цитата(Tcom @ Jul 7 2008, 12:05) Привет...   Jul 7 2008, 08:18
- - Tcom   А возможны ли вложенные прерывания, от разных ног?   Jul 7 2008, 08:45
- - aaarrr   Нет. Только в SAM7X, если ноги на разных контролле...   Jul 7 2008, 09:02
- - aaarrr   Не обязательно "1" - прерывание генериру...   Jul 7 2008, 11:31
- - aaarrr   Так и должно быть: Цитата1 = At least one Input Ch...   Jul 7 2008, 13:42
|- - _4afc_   Цитата(aaarrr @ Jul 7 2008, 17:42) Так и ...   Jul 7 2008, 14:02
- - Tcom   У меня задача состоит в улавливании еденицы на 5 н...   Jul 8 2008, 06:02
- - aaarrr   Нет, не сработает: в PIOA_ISR будут установлены би...   Jul 8 2008, 08:07
- - uriy   Если вас устроит время реакции несколько миллисеку...   Jul 8 2008, 09:33
- - vladik   Плата AT91SAM7-P64 от OLIMEX, хочу прицепить оптро...   Apr 29 2009, 14:04
- - aaarrr   Глобально прерывания разрешены?   Apr 29 2009, 14:47


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

 


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


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