Здравствуйте.
Исправил всё как вы мне подсказали.
1 Векторы объявил
2 Про порты свою фанатичность убрал.
3 Сброс вачдока оставил только после прерывания по таймеру.
Немного переделал программу reset (сделал по шаблону как у вас Александр. Цикл вывода сигнала сброс переместил в подпрограмму reset)/
Не понял как правильно реализовать прерывания по таймеру . Мне нужно забрать по всем 6 каналам значения через определённый промижуток времени (это основное в программе). Я понял вы мне советуете По прерыванию от таймера сначало взять данные, потом переопредилить канал и выйти . Следующее прерывание по таймеру я уже точно заберу со второго и преобразования точно завершаться (что бы впустую не ждать пока преобразует АЦП). Пока не допёр . Попробую подумать сам сегодня ещё раз.
Привожу описание и прогу
Программа reset ;программа перезагрузки и установки режимов. После по
rjmp aa вы выдаем импульсы (проц работает)
на 4 пин порта D.После переполнения нуль таймера получаем с помощью ацп
с 0и 1 каналов значение
перемножаем их и ложим в накопитель старший или младший . Если старший
разряд накопителя (младшего или старшего) больше
константы младшего или старшего накопителя, в форме дисятичного значения
прибавляем 1 (программа rcall form) остальные программы вспомогательные.
С помощью программы
;программа приёма номера счётчика / передачи данный по USART по
компьютеру смотрим десятичное значение.
Забыл исправить ошибку.
PS: Так дело не пойдёт. В прерывании start я вообще не нашёл reti. И величина её запредельная. Тебе придётся полностью изменить логику работы программы. Опиши алгоритм хотябы общими словами
Сейчас заметил ёщё хотел исправить забыл. (может в ней то и собака зарыта)
Прикрепленные файлы
sav.txt ( 18.73 килобайт )
Кол-во скачиваний: 61