[an error occurred while processing this directive]
Пурква па? От любого пина P1 или P2. Как по срезу, так и по фронту. Только вот вектор у них один на каждый порт.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
rezident
19 октября 2006 г. 19:19
В ответ на:
У MSP430 не орнанизовать прерывание по уровню?
отправлено misyachniy 19 октября 2006 г. 19:05
Составить ответ
|||
Конференция
|||
Архив
Ответы
В том то и вопрос, пока обрабатываю прерывание, может произойти новое прерывание. Работаю с PDIUSBD12(-)
—
misyachniy
(19.10.2006 19:23
83.218.237.86
,
пустое
)
Нифига не понял, правда с DIUSPD не знаком, но как поможет прерывание по уровню? Оно такая экзотика.
—
-=ВН=-
(19.10.2006 19:36
193.125.71.140
,
пустое
)
Оно поможет гарантированно потерять вновь пришедшее прерывание :)
—
=AVR=
(19.10.2006 19:42
80.92.96.19
,
пустое
)
Проблема видимо в том, что флаг прерывания от пина Px устанавливается по изменению состояния пина, а сбрасывается программно.
—
rezident
(19.10.2006 20:00
195.222.149.11
, 176 байт)
Это Вы тоже какую-то экзотику придумали:-) В таких ситуациях надо требовать совсем шустрый контроллер, а не прерывание по уровню.
—
-=ВН=-
(19.10.2006 20:03
193.125.71.140
,
пустое
)
Угу. Это и ежу ясно :)
—
rezident
(19.10.2006 20:04
195.222.149.11
,
пустое
)
Вот, вот, посему не надо вопрошающего низводить до уровня ежа.
—
-=ВН=-
(19.10.2006 20:06
193.125.71.140
,
пустое
)
Наоборот - если не хочешь новое потерять, то нужен именно фронт и сохраняемый флаг
—
=AVR=
(19.10.2006 19:33
80.92.96.19
,
пустое
)
ИМХО конечно, но цеплять к МК, не имеющего внешней шины, USB контроллер с параллельной шиной не самое удачное решение.
—
rezident
(19.10.2006 19:29
195.222.149.11
,
пустое
)
Не совсем понял ситуацию. Обрабатывать прерывания не успеваете? Дык PxIFG считывайте и обнуляйте сразу, чтобы по выходу вновь в прерывание не входить.
—
rezident
(19.10.2006 19:25
195.222.149.11
,
пустое
)
А по уровню нет. Нетути.
—
-=ВН=-
(19.10.2006 19:21
193.125.71.140
,
пустое
)
А "по уровню" это как? Поясните.
—
rezident
(19.10.2006 19:22
195.222.149.11
,
пустое
)
Да просто. Есть нужный уровень - возникает прерывание, если оно разрешено. Нет - не возникает. Не фронт, а уровень. В 51 например выбиралось - по фронту или по уровню внешнее прерыв..
—
-=ВН=-
(19.10.2006 19:31
193.125.71.140
,
пустое
)
Кстати, если перед выходом из прерывания флаги PxIFG не сбрасывать или наоборот принудительно устанавливать в соответствии с состоянием PxIN.bit, то получиться искомое прерывание "по уровню".
—
rezident
(19.10.2006 20:43
195.222.149.11
,
пустое
)
Не получится.
—
-=ВН=-
(19.10.2006 20:47
193.125.71.140
,
пустое
)
Почему?
—
rezident
(19.10.2006 21:35
195.222.149.11
,
пустое
)
Первый вариант, не сбрасывать, к объективной реальности, происходящей за бортом контроллера, не имеет никакого отношения. Второй вариант, устанавливать IFG во входное состояние, потребует заниматься этим постоянно, для соблюдения полной эквивалентности, ни на что больше не останется времени.
—
-=ВН=-
(19.10.2006 21:52
193.125.71.140
,
пустое
)
А какое отношение к реальности тогда имеет "прерывание по уровню" в x51?
—
rezident
(19.10.2006 22:10
195.222.149.11
,
пустое
)
Самое прямое. В 51 оно есть. Прерывание вызывает уровень на ноге. А не какой-то несброс флага или его программная установка в состояние входной ноги. Вот такое отношение оно имеет к реальности. Скачайте с Интела мануэля на 51 и ознакомьтесь, если интересно.
—
-=ВН=-
(19.10.2006 22:18
193.125.71.140
,
пустое
)
Да вспомнил я вспомнил его суть. Потому и предложил его возможную реализацию для MSP430.
—
rezident
(19.10.2006 22:24
195.222.149.11
, 201 байт)
Ну я Вас отошлю к своему предпредыдущему ответу.
—
-=ВН=-
(19.10.2006 22:29
193.125.71.140
,
пустое
)
Например, в х51 - пока на пине Int активный уровень - вызывается прерывание, а флаг никакой не устанавливается и не запоминается. Ни разу в жизни не пригодилось
—
=AVR=
(19.10.2006 19:31
80.92.96.19
,
пустое
)
Правда, некоторые МК из спячки выводятся только уровневым прерыванием - генератор-то выключен
—
=AVR=
(19.10.2006 19:32
80.92.96.19
,
пустое
)
Дык у MSP430 из любого режима энергосбережения можно выйти по прерыванию. Даже если все тактовые генераторы остановлены.
—
rezident
(19.10.2006 19:54
195.222.149.11
,
пустое
)
Для того, чтобы распознать ФРОНТ, в синхронных структурах нужны такты. Когда их нет, то нужна либо асинхронная схема (RS-триггер), либо именно прерывание по уровню
—
=AVR=
(19.10.2006 20:06
80.92.96.19
,
пустое
)
У MSP430 на всех блок-схемах RS-триггера нарисованы.
—
rezident
(19.10.2006 20:34
195.222.149.11
,
пустое
)
Не, фронт можно распознать еще обострителем:-) Вентиль И, на один вход дли-и-и-инная нечетная цепь инветроров, а второй вход совмещен со входом первого инвертора в цепи. И положительный фронт готов:-)
—
-=ВН=-
(19.10.2006 20:11
193.125.71.140
,
пустое
)
А на XOR - дык оба сразу :)
—
=AVR=
(19.10.2006 20:26
80.92.96.19
,
пустое
)
yes:-)
—
-=ВН=-
(19.10.2006 20:31
193.125.71.140
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание