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