Задержка вычисления времени подпрограммы - PullRequest
0 голосов
/ 14 декабря 2018

Как рассчитать общее время, затрачиваемое подпрограммой в PIC?Считается, что главный тактовый генератор PIC получен из кристалла 1 МГц.Вот код, приведенный ниже:

TEMP   EQU 0x1D

DELAY  MOVLW 0x80
       MOVWF TEMP
       NOP
DELAY1 NOP
       DECFSZ  TEMP,F
       GOTO    DELAY1
       RETURN

Я подсчитал, что всего 518 циклов команд и общее количество Q-циклов = 2072. Как бы я продолжил, если бы тактовая частота была 2 МГц??Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Для 8-битного PIC:

Время цикла инструкции = 4 / fOzs

1 МГц означает тип команды 4us.Таким образом, ваш код будет выполнен в 518 x 4us = 2072 мс.

2 МГц означает цикл инструкций 2us.Таким образом, ваш код будет выполнен в 518 x 2us = 1 036 мс.

0 голосов
/ 15 декабря 2018

Все 8-битные контроллеры PIC с трактом передачи данных используют 4 тактовых генератора на 1 цикл команд.Изменения частоты генератора не изменяют это отношение.

Размещенный вами код всегда выполняется в 518 циклах инструкций.

Когда частота генератора изменяется от 1 МГц до 2 МГц, код будет выполняться за меньшее время в реальном времени, но все равно будет использовать то же количество циклов команд.

...