【问题标题】:Delay Subroutine Time Calculation延迟子程序时间计算
【发布时间】:2018-12-14 20:53:19
【问题描述】:

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

TEMP   EQU 0x1D

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

我计算出总共有 518 个指令周期,Q 周期总数 = 2072。 如果时钟为 2MHz,我将如何继续?谢谢。

【问题讨论】:

    标签: pic microchip


    【解决方案1】:

    对于 8 位图片:

    指令周期时间 = 4 / fOzs

    1MHz 表示指令周期为 4us。所以你的代码将在 518 x 4us = 2,072ms 内执行。

    2MHz 表示一个指令周期为 2us。所以你的代码将在 518 x 2us = 1,036ms 内执行。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-03
        • 1970-01-01
        相关资源
        最近更新 更多