如何计算PIC中子例程消耗的总时间?假设PIC主时钟来自1MHz晶振。这是给出的代码:
TEMP EQU 0x1D
DELAY MOVLW 0x80
MOVWF TEMP
NOP
DELAY1 NOP
DECFSZ TEMP,F
GOTO DELAY1
RETURN
我计算出总共有518个指令周期,并且Q周期的总数= 2072。 如果时钟为2MHz,我该怎么办?谢谢。
答案 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内执行。