Цитата(kanzler @ Jul 21 2007, 05:48)

1. Нет, как раз этот модуль я не выключаю, а вот выключив:
__interrupt void timer2Handle(void)
Этим отключается сканирование клавиатуры?
Цитата
И сделав условие в главном цикле:
if(systemFlag.TIMER0_FLAG)
вместо
if((systemFlag.TIMER0_FLAG) && (modeWork == 2))
не совсем понимаю это ваше условие.
modeWork устанавливается в 2 два при нажатии какой-то кнопки.
Какой кнопки?
Цитата
таким образом работает только автоматический режим и программа работает без сбоев.
Изъясняйтесь проще ;>
Мне не ведомо, что означает у вас автоматический режим, а что не автоматический.
Опишите как можно более подробно условия сбоя, например так:
Нажимаю кнопку которая коротит PINX с землей, по этой кнопке устанавливается флажек modeWork в 2. После очередного переполения таймера T0 этот флаг проверяется, вызывается функция hardShowChannel(); в которой происходит прыжек в начало программы.
Цитата
В прилагаемом файле то что вы просили.
Вы пользуете только ewd сборку, и код приведенный в предыдущем посте точно сбоит?
Под отладкой погонял - но ничего не перезагружается. Видать не выполняются какие-то условия.
Подправьте код main() сл. образом:
Код
{
resetB = MCUCSR;
MCUCSR = 0; // CLEAR OLD RESET FLAGS
и посмотрите чему равен resetB после сбоя.