Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
CVAVR как программно вызвать функцию обработки прерывания???
Отправлено
woroba
06 марта 2007 г. 09:07
Составить ответ
|
Вернуться на конференцию
Ответы
Вызывать необходимо нормальную функцию, И из прерывания ее-же
—
leon_
(06.03.2007 16:00:19
82.207.118.64
,
пустое
)
Вызывать необходимо нормальную функцию, И из прерывания ее-же
—
leon_
(06.03.2007 15:33:39
82.207.118.64
,
пустое
)
А рукоблудно вызванная IRQ-функция м.б. прервана ею же? Вообще не советтую.Обработчик по идее д.б. небольшой. Лучше сделать обычную функццию-копию.
—
Quasy
(06.03.2007 10:40:17
80.243.9.34
,
пустое
)
Ага - и к ней копию данных! И начнееется - среди тех данных, как правило, находится что-то, что должно существовать в единств. экземпляре и пошло-поехало. Проще нужно подходить - cli и всех делов-то! Ну, кое-где еще push <статус>...
—
YellowTiger
(06.03.2007 14:04:51
83.149.0.98
,
пустое
)
Вам помочь разрулить ситуацию с данными?
—
Quasy
(06.03.2007 14:24:49
80.243.9.34
,
пустое
)
Спасибо за помощь с реентерабельностью, но в том решении, за которое я высказался, эта проблема не возникает. :о)))
—
YellowTiger
(06.03.2007 15:06:21
83.149.0.98
,
пустое
)
в смысле - "за предложение помощи"... :о)
—
YellowTiger
(06.03.2007 15:08:39
83.149.0.98
,
пустое
)
#asm("cli") ((void(*)())addr_vect)(); где addr_vect - адрес вектора прерывания(см в даташите)
—
F8
(06.03.2007 09:49:38
213.130.22.7
,
пустое
)
Ответ: И на фига мне этот СИ если пол программы у меня на ASME (писал бы как и раньше всё на ASME)
—
woroba
(06.03.2007 09:57:59
82.200.205.129
,
пустое
)
А в чем собственно проблемма? Не работает?
—
F8
(06.03.2007 10:03:38
213.130.22.7
,
пустое
)
Во! Единственная здравая мысль :)
—
SМ
(06.03.2007 10:03:6
80.92.255.53
,
пустое
)
Не знаю как для DSP, вам оно виднее, но для обычных МК всеж большенство пользуется Сями и думаю не зря :)
—
F8
(06.03.2007 10:10:12
213.130.22.7
,
пустое
)
Это дело вкуса и лени. А не DSP/не-DSP.
—
SМ
(06.03.2007 10:16:51
80.92.255.53
,
пустое
)
Напрямую нельзя, RETI немного помешает. Смотря в какой AVR и какого прерывания. Например внешние прерывания тюньки генерируются программно записью нужного значения в PORTx.
—
Ivax
(06.03.2007 09:47:1
80.250.188.26
,
пустое
)
нифига он не мешает reti = ret + cli
—
F8
(06.03.2007 09:52:23
213.130.22.7
,
пустое
)
В смысле reti = ret + sei :)
—
F8
(06.03.2007 09:53:44
213.130.22.7
,
пустое
)
Очень весело ;О) после РЕТ сделать СЕИ
—
-mse-
(06.03.2007 10:13:1
83.239.86.98
,
пустое
)
А мне вот нифига не весело, наверно я тупой но не вижу в чем повод для веселья? и зачем ПОСЛЕ(как впрочем и ДО) рет делать сеи?
—
F8
(06.03.2007 10:18:51
213.130.22.7
,
пустое
)
Веселье в том, что после РЕТ затруднительно сделать чего-либо определённого. Кроме как в очень спеццыальных случаях.
—
-mse-
(06.03.2007 11:07:33
83.239.86.98
, 58 байт)
Так ведь наоборот и не надо +
—
YellowTiger
(06.03.2007 14:15:46
83.149.0.98
, 225 байт)
Ну это кому как. Практически - да, не мешает. Теоретически - а если в данный момент все прерывания запрещены и "... + sei" совсем бы и не надо?
—
Ivax
(06.03.2007 10:12:57
80.250.188.26
,
пустое
)
А это уж пусть сам программер решает нужно оно ему или нет.
—
F8
(06.03.2007 10:36:6
213.130.22.7
,
пустое
)
Ответ: PORTX трогать нельзя (не позволяет схема )
—
woroba
(06.03.2007 09:51:34
82.200.205.129
,
пустое
)
Вызвать обработчик прерывания как обычную функцию из основной задачи? Мсье извращенец! (+)
—
Сидоргек
(06.03.2007 09:28:33
91.124.123.232
, 272 байт)
Ответ:
—
woroba
(06.03.2007 09:37:58
82.200.205.129
, 78 байт)
Прерывание отличается от обычной Cишной функции способом возврата. Посмотри разницу между RET и RETI. Вдобавок при входе-выходе сохраняется-восстанавливается много чего, а это временнЫе затраты.
—
Ivax
(06.03.2007 09:50:48
80.250.188.26
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 387:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru