Вот это-то и непонятно - как можно использовать прерывания ( подпрограммы еще с трудом могу представить ) без положить/извлечь ( push/pop ) ? Ведь начало любого прерывания - этоRoman Venom писал(а): Вы неправильно меня поняли... Я не использую команды положить/извлечь. Прерывания, подпрограммы естессно присутствуют. Как же без них?И никаких недоразумений со стеком не было... Кстати ещё вот что. Были непонятные баги когда прерывания срабатывали во время операций положить/извлечь в ОЗУ.
push r16
in r16,SREG
push r16
......
В отличие от x86 и многих других процессоров, AVR при входе в прерывание не сохраняет слово состояния, и это надо делать ручками, иначе после возврата из прерывания можем получить измененные N Z V C с непредсказуемыми последствиями. Ну и какими-то регистрами в обработчике Вы пользуетесь - после возврата им надо отдать прежнее содержимое. Мне неловко говорить Вам банальные вещи, наверняка вы это знаете, но как тогда без push/pop в обработчике ? Может, и проблемы с записью/чтением памяти тоже с этим связаны? За 15 лет занятий микроконтроллерами всякого было у меня, но такого - никогда.
И не только онnsl2004 писал(а): Протеус рулит.


