Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Ошибки выполнения (какие не знаю), ATMEL AVR


Автор: Alex 26.12.2004, 02:10
Не знаю...
Достаточно распространенной ошибкой является неправильный вызов обработчиков прерываний (и подпрограмм).
При возникновении события в AVR контроллерах выставляется соответствующий флаг прерывания и процедура обработчика прерывания терпеливо ждет своей очереди,
место прерывания программы предсказать нельзя, это могут быть расчеты или передача данных, в любом случае необходимо сделать важную операцию:
-первыми строками прерывания должен быть ряд команд:
Push  R16;
In    R16,SREG;
Push  R16;
это нужно практически всегда, остальные регитры если они используются, тоже нужно сохранить. При выходе соответственно восстановить. Естественно, если вы используете результаты полученные в прерывании, то либо испольуйте
SRAM либо неиспользуемые в других целях регистры.
Ошибка исчезла?

>> ДА, cпасибо
>> НЕТ
<< Назад

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)