Цитата(Sholkin @ Jan 21 2008, 07:37)

Здрасте.
Что то не кто не ответил . Сейчас то у меня правильно пишиться прога ? или нет ?
Привет. Сейчас более-менее прилично. Времени не вагон, поэтому задержки с ответом и замечания будут поступательные. По мере прочтения документа.
Сначала некоторые замечания по оформлению
Лучше всего все вектора объявлять ч/з org. Иначе ОБЯЗАТЕЛЬНО наступите на грабли.
Теперь по существу.
Прерывание от таймера для измерения АЦП реализовано неправильно. Точнее так не делают. Вообще все прерывания делают найкрадчайшими. У вас в самом прерывании будет задержка на ответ от измерения АЦП. Это значительная величина. И её элементарно можно избежать.
Для того, чтобы её избежать делается след. образом.
1) По входу в прерывание сразу читается значение.
2) Потом переключается канал
3) перестартовывается и выходят.
Таким образом к следующему прерыванию таймера АЦП
гарантировано завершило преобразование. Если одного прерывания недостаточно, то делают счётчик прерываний.
Буду читать дальше
Да ещё одно замечание.
Выключи свой wdt.
ты должен отладить прогу так, чтобы работала как часы без wdt. wdt это сложная и отдельная песня. Правильная и добросовестная его настройка занимает половину времени от написания проекта.

Плюс надо понимание что и зачем и как. Иначе это абсолютно не даёт пользы а может даже наносить вред тем, что будет скрывать от тебя твои же собственные ошибки
PS: Так дело не пойдёт. В прерывании start я вообще не нашёл reti. И величина её запредельная. Тебе придётся полностью изменить логику работы программы. Опиши алгоритм хотябы общими словами