Фирменный .pdf учит сохранять регистры при вложении равном 1, а если прерывание вызывается из прерывания? Я такого .pdf не нашел. Может носом ткнете?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
KSN
13 мая 2004 г. 07:05
В ответ на:
Ответ: так пример фирменном .pdf есть
отправлено 1974 13 мая 2004 г. 07:01
Составить ответ
|||
Конференция
|||
Архив
Ответы
Не нашел, потому что так не делают. По крайней мере в PIC16xxx. Это крайне некорректно, так делать.
—
=L.A.=
(13.05.2004 10:27,
пустое
)
Идеологический момент: прерывание из прерывания не вызывается, прерывание возникает и проц передает управление по соотв. адресу, а то Вы приравняли прерывание к вызову обычной функции :)
—
Котик
(13.05.2004 07:42,
пустое
)
Народ, а что злые-то такие? Я у вас конкретно спросил: есть опыт, подсказали, нет - не надо. Действительно, сам буду разбираться(идеи уже есть) И не приходило в голову, что проц за меня давным давно выбрали и прога уже написана, а нужно внести коррективы, а места не хватает? Задал бы вопрос - какой проц взять? Вот тогда бы и судачили: фигня этот или не фигня... Единственное, согласен с Вами Котик - иногда объем конфе не помешает.
—
KSN
(13.05.2004 09:30,
пустое
)
А чего сразу дуться? Людей на философию иногда тянет-таки, бывает в результате рождаются гениальные идеи :)))
—
Котик
(13.05.2004 10:03,
пустое
)
Да зря Вы так подумали. Не дуюсь, а удивляюсь... Пофилосовствовать конечно можно, но когда у тебя над душой стоят...:)
—
KSN
(13.05.2004 10:11,
пустое
)
Мне в голову приходит: поместить процедуры обработки прерывания в одну из страниц, а процедуры основного в другую страницу, тогда мне определенно понятно как восстанавливать pclath. Отмечу, что вложенность-то небольшая - равная 2.
—
KSN
(13.05.2004 07:49,
пустое
)
Ответ:
—
Staer
(13.05.2004 13:48, 190 байт)
А при чем тут PCLATH?
—
Сергей Борщ
(13.05.2004 09:58, 79 байт)
Вышел за рамки первого банка. Есть процедуры, которые вызываю из второго. Надо запомнить, откуда я влетел в прерывание...
—
KSN
(13.05.2004 10:12,
пустое
)
Ну так сохрани его. а при выходе восстанови. Сча еще пошукаю, может таки найду исходники.
—
Сергей Борщ
(13.05.2004 10:14,
пустое
)
Не, не нашел.
—
Сергей Борщ
(13.05.2004 10:34, 1958 байт)
Спасибо за потраченное на меня время
—
KSN
(13.05.2004 10:46,
пустое
)
Идею Вашу понял. Туплю я. Я приблизительно так и делал, только сейчас решил в одном общем месте определить - вложенное или нет прерывание и соответственно сохранить регистры. Ветвление делал через goto - вот и пошли проблемы. Сейчай обкумекаю ваше предложение.
—
KSN
(13.05.2004 10:22,
пустое
)
Их куда-то надо сохранить еще до ветвления
—
Сергей Борщ
(13.05.2004 10:48, 407 байт)
Надо брать нормальный процессор..... а то выберут сначала как бы херню-то помягче назвать...... нечто аналогичное "управляющей народно-хозяйственной машине" или как она там называлась :)
—
Котик
(13.05.2004 09:16,
пустое
)
Еще как вызывается, если я внутри одного прерывания разрешаю обработку остальных. Имею полное право, если мне так надо:) А по существу можете что-нибудь предложить?
—
KSN
(13.05.2004 07:46,
пустое
)
Сам себе геморой придумал - сам и разбирайся. По существу - сколько уровней вложенности - столько и обработчиков.
—
wst
(13.05.2004 09:07,
пустое
)
Имелся в виду сам способ обработки прерывания процессором, а так все зависит от расставленых приоритетов и порядка возникновения прер. а так обычно (не знаю как у пиков) проц сам сохраняет N служ регистров в стеке, у ж какие читайте доку :)
—
Котик
(13.05.2004 08:13,
пустое
)
Вот всегда меня забавляет. Спрашиваешь конкретный вопрос, но в основном всех тянет пофилосовствовать:) Если не сталкивались с таким вопросом, нет мыслей - сказали и все
—
KSN
(13.05.2004 08:35,
пустое
)
Дык а как же :), должен же кто-то на объемом конфы работать. Я конечно понимаю, некоторые и без повода потрындеть любят - см. каждое перво сообщение страници. А тут почти по существу :)
—
Котик
(13.05.2004 08:54,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru