延迟子程序时间计算

时间:2018-12-14 20:53:20

标签: pic microchip

如何计算PIC中子例程消耗的总时间?假设PIC主时钟来自1MHz晶振。这是给出的代码:

TEMP   EQU 0x1D

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

我计算出总共有518个指令周期,并且Q周期的总数= 2072。 如果时钟为2MHz,我该怎么办?谢谢。

2 个答案:

答案 0 :(得分:0)

所有8位数据路径PIC控制器在1个指令周期内使用4个振荡器时钟。改变振荡器频率不会改变这种关系。

您发布的代码始终以518个指令周期执行。

当振荡器频率从1 MHz更改为2 MHz时,代码将以较少的实时执行,但仍将使用相同数量的指令周期。

答案 1 :(得分:0)

对于8位PIC:

  
    

指令周期时间= 4 / fOzs

  

1MHz表示4us的指令周期。因此,您的代码将以518 x 4us = 2,072ms执行。

2MHz表示2us的指令周期。因此,您的代码将在518 x 2us = 1,036ms内执行。