Цитата(Т.Достоевский @ Jun 12 2007, 14:29)

А нафига они тогда нужны? =AVR= про грабли прав ?
Не понял что такое "про грабли" - если вы имеете ввиду его фанатичную агитацию за асм, то нет. Но это отдельная тема и общаться об этом, а тем более с этим "божеством" я не имею желания. Поверьте, многими участниками этой конференции написано множество программ, и если у кого-то и возникала необходимость в подобных извращениях, то только не в таких простых задачах как динамическая индикация.
Цитата(Т.Достоевский @ Jun 12 2007, 14:29)

Эта вещь применяется ОЧЕНЬ часто, например:
так и сделайте свое прерывание максимально коротким:
Код
__interrupt void UpdateRoutine()
{
PORT = data;
}
Думаю что даже при отсутствии оптимизации получите искомый код с сохранением одного регистра.
Цитата(Т.Достоевский @ Jun 12 2007, 14:29)

//за кого вы меня держите?
За человека, который задал вопрос, но в упор не слышит ответ что проблему надо решать иначе.
Много раз вам отвечали - нет, нельзя заставить компилятор сохранить лишь часть контекста до выполнения основной работы. Можно запретить сохранять контекст вообще, но тогда вам придется сохранять его самостоятельно когда захотите при помощи "обертки" на ассемблере и принять на себя всю ответственность за возможные "глюки".
Я не знаю что такое tc_compa и мне трудно понять, как постоянное смещение на N тактов начала обработки _каждого_ прерывания обновления индикатора относительно момента запуска контроллера может вызвать сбои индикации. Давайте вы нам расскажете более подробно обо всем алгоритме вашей индикации, а мы поможем вам изменить его так, чтобы без подобных затруднений все работало независимо от времени сохранения контекста.
P.S. и постарайтесь использовать общепринятую на этом форуме форму цитирования.