Обучение : Программирование на Ассемблере для PIC


Измерение времени исполнения программы

В данном разделе мы рассмотрим как в MPLAB измерить время исполнения локального участка программы.

Нам известно, что МК никогда не прекращает выполнение программы. Согласно циклической концепции для правильной организации мы должны таким образом составить программу, чтобы она всегда выполнялась. Наша программа состоит из модулей (сегментов), выполняющие те или иные задачи. Иногда требуется знать, сколько времени выполняется тот или иной сегмент или интервал в сегменте. Эти знания нужны для оценки возможностей и характеристики устройства. В отдельных случаях без этих знаний невозможно синхронизировать работу с другими устройствами.

Для измерения мы будем использовать программу из примера 6 – "Работа нескольких кнопок. Многозадачность". Точнее мы будем измерять и вычислять период мигания символа нижнего подчеркивания.

Будем считать, что в MPLAB создан проект, в котором открыта программа из примера 6 (см. главу 5). Проект должен быть успешно скомпилирован. Требуется измерить время выполнения программы в сегменте отслеживания нажатия кнопок.

Последовательность действий:

1. Включаем симулятор (см. раздел "Симулятор MPLAB SIM").

Нажимаем Debugger –> Select Tools –> MPLAB SIM.


2. Нажимаем Debugger –> StopWatch.

 

 

С помощью этого инструмента мы будем измерять задержку.


3. В тексте программы устанавливаем т.н. BreakPointы. Для этого двойным щелчком на полях напротив метки m4 и команды btfsc PORTB,1 устанавливаем маркеры. Слева должна появиться белая буква B в красном кружке. Мы будем измерять время задержки между этими маркерами. Повторный щелчок снимает маркер.
 

 
4. Нажимаем кнопку Play на панели симулятора, или щелкаем F9. В этом режиме будет происходить симуляция работы МК на компьютере, а остановится этот процесс тогда, когда мы доберемся до нашего первого BreakPointа. Смотрим на окошко StopWatch. Его значения изменились:
 

 
Теперь нажимаем Zero. Этим мы сбрасываем наш секундомер в ноль. И снова жмем F9. Микроконтроллер начал работать дальше, и остановится он только когда доберется до второго BreakPoint’а. На этом интервале время выполнения программы занимает 250027 мкс или 0,25 сек.

Теперь несложно подсчитать период мигания символа нижнего подчеркивания 2*0,25 = 0,5 сек.

 


<<< назад далее >>>

Просмотров: 17677

 








 
 
 

В русском Интернете бестолку защищать свои права. Хотите использовать материалы - используйте,
но с письменного согласия авторов. В противном случае будут высланы соответствующие письма
в поисковые системы об ограничении индексации ваших сайтов. Не доводите до греха.