[an error occurred while processing this directive]
|
> микроконтроллера, не выходя из превывания в основную программу,
> т.к. в ОЗУ уже другие данные и нужны начальные установки...
Всегда можно в основном цикле проверить какой-то флаг и рестартануть.
> Если сделать JMP 0 прямо в процедуре прерывания, то почему-то все
> виснет, хотя при аппаратном сбросе все запускается.
> Может быть это из за того, что, не выполняется команда RETI
Да, автомат в х51 так постороен, что reti должна завершить процедуру прерывания.
> делал и так:
> в конце процедуры писал
> ...
> mov a,#0
> push a
> push a
> reti
> непомогло :(
Возможно, этого недостаточно. Напимер, указатель стека ты при старте настраиваешь или оставляешь по умолчанию?
Я делал примерно аналогичные манипуляции, и у меня все работало. Только перед этим я дополнительно восстанавливал все регистры спец-функций в состояние "после ресет".
E-mail: info@telesys.ru