Протеус - это не только симулятор как таковой, но так же и великолепная пошаговая отладка по коду. Что несомненно удобно для вылавливания всяческих глюков. Да и вообще, полезно посмотреть что в переменные заносится и сколько то или иное прерывание обрабатывается, например. Для этого необходимо загрузить в микроконтроллер не .HEX файл, а файл с расширением .OBJ (BASCOM его тоже создает):
Правда в старых версиях он эти файлы не видит, но иногда помогает просто изменение расширения в строке Имя файла (разумеется, файл в папке должен быть). После чего нажимаем на кнопку "Шаг":
Появится исходный код и вспомогательные окна:
Эти окна можно добавлять по своему усмотрению во вкладке "Отладка":
Так например, выбрав в списке "Watch Window" и кликнув правой кнопкой мыши по пустому полю, можно добавить регистры ввода-вывода для наблюдения:
Теперь, перейдя на исходный код и нажимая F11 можно наблюдать как пошагово выполняется программа, что заносится в переменные и регистры, и главное, что происходит в устройстве (на семисегментном индикаторе, например).
Так же в коде можно установить точки останова. Дойдя до этого места программа остановится. Так например можно выяснить через какое время после старта сработало прерывание. Устанавливается / снимается брекпоинт двойным кликом по строке программы. После установки нажимаем на кнопку "Запустить моделирование". Дойдя до брекпоинта программа остановится, а внизу можно увидеть сколько времени прошло (elapsed - прошло). В данном случае работает динамическая индикация по переполнению таймера (обновление каждые 4 мс).
Если установить точку останова еще на выход из прерывания, то можно увидеть сколько времени выполняется само прерывание. В данном случае еще и видно что после прохода прерывания включился первый разряд индикатора. Удобно. :)
С уважением, Электронных Дел Мастер - Михаил (edm2007).
|