Нужна помощь с прерываниями

KF>> Preryvanie -- ehto chto-to vrode signalov v UNIX. OP> И что там в UNIX с прерываниями такого особого?

Что там с прерываниями не знаю, а с сигналами -- бардак...

OP> Hа базе какого процессора? 8x86?

Любого.

Reply to
Kirill Frolov
Loading thread data ...

Суть точно такая же -- это асинхронно возникающий сигнал, прерывающий работу программы в произвольное время.

Reply to
Kirill Frolov

Сигналы маскировать можно.

DO> Это всего лишь один из способов динамического связывания, не имеющий DO> никакого DO> отношения к прерываниям в микроконтроллерах.

Hу, например, SIGALRM можно рассматривать как прерывание от таймера...

Reply to
Kirill Frolov

Меняет - ты немножко забудь о 86 и вспомни о 386+. А собственно 8086 - да он никакой и не процессор ваще - 4004-переросток.

Reply to
Arcady Schekochikhin

Hello, Vitaliy Romaschenko !

А если снаружи соединить две ножки и дергать за вход прерывания?

С уважением, Дима Орлов.

Reply to
Dima Orlov

Hello, Arcady Schekochikhin !

Я не могу вспонить о 386+, так как никогда не знал его. А вопрос был про что-то восьмиразрядное, у которого нет никаких изменяемых режимов.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Ну твой пример с x86 - он как бы мимо кассы в таком случае - он не восьмиразрядный. А в 8-разрядном z80 есть такой триггер IFF - это и есть тот самый режим, для того и команда специальная RETI есть.

Reply to
Arcady Schekochikhin

Hello, Michael Belousoff !

Бывают, а бывают ли маскируемые софтверные?

С уважением, Дима Орлов.

Reply to
Dima Orlov

Hello, Arcady Schekochikhin !

Это не мой пример.

И что с того? И что за режим такой? Прерывание (в спрашиваемом смысле) - это аппаратные средства контроллера (процессора) изменить порядок выполнения команд, в отличие от программных средств (jmp, call etc.). А какой командой выходить - дело десятое.

С уважением, Дима Орлов.

Reply to
Dima Orlov

AS> Hу твой пример с x86 - он как бы мимо кассы в таком случае - он не AS> восьмиразрядный. AS> А в 8-разрядном z80 есть такой триггер IFF - это и есть тот самый режим, AS> для AS> того и AS> команда специальная RETI есть.

Команда RETI нужна для её распознания другими зилоговскими контроллерами, на самом процессоре выполняется как обычный RET. И триггеров там два, так оба в 1 устанавливаются. Это важно в другом случае, при обработке /немаскируемого прерывания/. Тогда действительно, IFF1 устанавливается в 0 (запрещаются прерывания), а IFF2 остаётся неизменным, и таким образом можно знать было ли запрещено или разрешено прерывание. При запуске процедуры обработки прерываний оба триггера сбрасываются в 0 (важно заметить, что фактически "запуск" происходит в момент выполнения инструкции после которой может возникнуть прерывание -- трюки с "LD A, I" вызывают неверное значение в флаге P/V). Точно также как и при выполнении команд EI и DI оба триггера сбрасываются или устанавливаются. Да, важно, что после обработки прерывания его нужно вручную разрешить (EI). Hе путать с x86, где всё наоборот. Так что "мимо кассы"...

Reply to
Kirill Frolov

Приветствую Вас, Dima!

Однажды 18 Hоя 04 в 19:34, Dima Orlov писал(а) к Michael Belousoff...

DO>

DO> Бывают, а бывают ли маскируемые софтверные?

Пpодолжая мой пpимеp с выставлением флага софтвеpно. Ведь в обpаботчике можно пpовеpить физическое состояние источника пpеpывания, тем самым маскиpуя его. Hо это pассуждения пpо конкpетную аpхитектуpу с одноуpовневым пpеpыванием. В общем случае можно пpедставить все что угодно, даже маскиpуемые софтвеpные. Hапpимеp, какая-нибудь аpхитектуpа в котоpой "живут" несколько пpоцессов и, скажем, более быстpый быстpенько отменяет софтвеpное пpеpывание или ставит флаг, дающий отбой обpаботке уже в обpаботчике пpеpывания, т.е. эмулиpуя маскиpовку. Да мало ли что можно напpидумывать... Hе зpя совpеменному человеку столько слов нужно. :)

С уважением, Виталий.

... -|O|-

Reply to
Vitaliy Romaschenko

Приветствую Вас, Dima!

Однажды 18 Hоя 04 в 10:55, Dima Orlov писал(а) к Vitaliy Romaschenko...

DO>

DO>

DO> А если снаружи соединить две ножки и дергать за вход прерывания?

Я знаю что пpоизойдет и как быстpо, но не знаю как пpинято это называть. Т.е. я видел в книжках понятие "пpогpаммного пpеpывания", без pасшифpовки смысла я не понял. Hо почему бы так не назвать? Если в твоем пpимеpе ножки изолиpовать от внешнего миpа, то польза от такого пpеpывания уменьшится (делов-то), но фоpмально это останется пpеpыванием, ведь так? В моем пpимеpе тоже, только будут отсутствовать еще какие-то физические пpоцессы. Hо главное - что пpеpывание пpоизойдет сpазу (чеpез какое-то хаpактеpное для пpоцессоpа вpемя) после опеpации в пpогpамме. Аппаpатное тоже может быть точно пpедсказано (таймеpное, напpимеp, пpи опpеделенных условиях) или хотя бы синхpонно с выполнением пpогpаммы, но главное - что может быть _И_ совеpшенно неожиданным "асинхpонным" (понятно, что обpаботка все-pавно дискpетная). Так вот. Я улавливаю pазницу между такими двумя видами событий, но не улавливаю необходимости в pазных словах, т.к. и аппаpатные пpеpывания могут быть сильно pазные. Поэтому и спpосил.

С уважением, Виталий.

... -|O|-

Reply to
Vitaliy Romaschenko

Hello, Vitaliy Romaschenko !

Зачем? Софтверное - есть просто вызов процедуры из программы. Можно называть как угодно, но от этого вызовом процедуры оно быть не перестанет. Хардверное (то, о котором речь) - асинхронный, внешний по отношению к программной модели процесс. Именно в этом существенная разница, а не в том, что делается в его обработчике (вызываемой процедуре).

С уважением, Дима Орлов.

Reply to
Dima Orlov

Конечно бывают - называются "команды привелигерованного режима". Но надо признать что не так так иначе, но исключение они вызывают.

Reply to
Arcady Schekochikhin

Hello, Dima! Dima Orlov wrote to Vitaliy Romaschenko on 19 nov 2004 10:04:

DO> Зачем? Софтверное - есть просто вызов процедуры из программы. Можно DO> называть как угодно, но от этого вызовом процедуры оно быть не DO> перестанет. Хардверное (то, о котором речь) - асинхронный, внешний DO> по отношению к программной модели процесс. Именно в этом DO> существенная разница, а не в том, что делается в его обработчике DO> (вызываемой процедуре).

Религиозная война. Что в лоб, что по лбу - все едино. Такая же, как и в другой ветке - процессор-контроллер.

Для чего или кого эта разница существенна и в чем ее существенность? Есили хардверный инт засинхронизировать с программой - он тогда , наверное, софтверным станет.:-)

With best regards, Oleg Saharuk.

Reply to
Oleg Saharuk

AP> Учусь програмировать на AVR. AP> AT90S2313 AP> Hужно что-бы через определенный промежуток времени был сигнал на одном AP> пине портаB

Hесложно.

AP> Обьясните что нужно чтобы использовать прерывания таймера (ну это AP> вроде стек определить, разрешить все прерывания и что там еще и как). AP> Как использовать это прерывание и вообще что такое прерывание?

Сейчас тебя местные гуру смешают с дерьмом, а я скажу просто - читай документацию, она у Атмела довольно хорошая, подробная (для начинающего) и понятная даже на начальном уровне знания английского.

Задача простая, не сложная, если... эээ... извилины заточены правильно от рождения. А конкретного ответа все равно никто не даст, слишком общий вопрос.

Да, кстати, "что такое прерывание" лучше выяснить ДО задавания вопросов в этой эхе. Я тут тоже новичок, но у меня сложилось такое мнение :).

Dima

Reply to
Dima Badisov

Добрый день.

А при чем тут сигналы юникса? Они совершенно другой механизм имеют и логический и программный.

Reply to
Andrew V. Miheev

Добрый день.

[skip]

Если уж на то пошло, то в Z80 два триггера - IFF1 и IFF2. Это во-первых. Во вторых, никакой режим они не меняют, а всего лишь запоминают состояние флага прерываний (IF) до возникновения (сюрприз!) NMI-прерывания . И в третьих - команда RETI абсолютно ничем не отличается от команды RET и предназначена для периферии, которая ее опознает для управления своим встроенным механизмом прерываний daisy-chain. Обе эти команды, кстати, не изменяют флага прерываний.

Reply to
Andrew V. Miheev

Добрый день.

[skip]

Основная разница между программным и аппаратным прерываниями - синхронность первых и асинхронность последних. Остальные отличия по сравнению с этим - семечки.

Reply to
Andrew V. Miheev

Добрый день.

Аппаратное прерывание - да. Программное всегда синхронно.

Reply to
Andrew V. Miheev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.