rezident 0 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба В регистрах. Но их (регистров) больше, чем переменных. И все переменные - глобальные. Пересечений нет.Прерывание для компилятора это процесс недетерминированный во времени. Каждую функцию (в т.ч. и обработчик прерывания) компилятор транслирует отдельно. Откуда ему знать, какие регистры в момент возникновения прерывания используются, а какие нет? Очень хочется не сохранять все РОН при прерывании.Напишите обработчик прерывания на ассемблере, запретив компилятору использовать регистры, которые вы будете использовать в обработчике прерывания. А еще лучше, как я вам раньше и советовал, выкиньте из прерывания фильтрацию (вычисление плавающего среднего), перенеся ее в main или в другую функцию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Александр К. 0 1 октября, 2009 Опубликовано 1 октября, 2009 · Жалоба Убрал лишнее из прерывания. И при #pragma savereg- работает. Был неправ. Спасибо за помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться