[an error occurred while processing this directive]
|
есть как минимум 3 условия:
1) сохранять аппаратный стек в программном;
2) разрешать глобальные прерывания (по команде EINT);
3) следить, чтобы прерывание самого низкого уровня не затянулось и не произошло повторного прерывания, но в целом и это можно предотвратить запрещая-разрешая соответствующие прерывания (в регистре IMR);
И ещё не совсем очевидное: при работе с портами или отдельными битами регистров общего назначения (типа флагов) нужно помнить, что за 1 команду сбросить-установить бит не получится (если я не прав, то поправьте меня в этом...)
З.Ы.: не советую делать большие вложения - лучше пересмотрите алгоритм и ограничтесь 1-2, ну максимум 3 уровнями...
E-mail: info@telesys.ru