This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5994:中断功能周期时间

Guru**** 2380860 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1266029/msp430fr5994-interrupt-function-cycle-time

器件型号:MSP430FR5994

将 FR5994 MCLK 配置为16MHz、将 SMclk 配置为16MHz、启动 IO 中断、在 IO 中断中将使用 DMA 读取、测量执行时间问题、IO 中断时间中的同一语句比主循环中的语句更长、理论上

P1OUT |= BIT5;
f_waitadcrdy111 = false;

G_ADC_cnt111++;
P1OUT &=~BIT5;

上述代码在主循环中只需要0.75us、可以完成、但在中断函数中需要2us 以上、您能不能说是什么导致了它的原因?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、京华:

    设置中断函数时、将对寄存器值保护执行一些操作、然后 MCU 可以在中断完成后恢复。

     (在用户指南中进行了说明)

    B.R.

    萨尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我无法确定、但您似乎是说您在 P1.5上测量的脉冲宽度、一种情况下为750ns、另一种情况下为2.75us。

    如果是、那么我要看的是在每种情况下生成的汇编代码。 显示的每一行代码都应产生一条经过良好优化的指令。 我计数12个周期、该周期与750ns 相匹配。 (由于 FRAM 等待状态、此过程应该比慢一些。)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。
    是的,这就是你理解它的方式,在中断中,它需要更多的时间。 相同的指令、在不同的位置、它们的装配指令是一致的。 对于8MHz、我不存在这个问题。 我已看到 FRAM 的等待状态时间、但无法确认是否已使用 FRAM

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    程序存储在 FRAM 中、您当然也是在使用它。 但我想知道您是否将 FRAM 控制器配置为提供 MCLK 大于8MHz 所需的等待状态。

    请勿使用自动模式、因为它速度较慢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。 虽然我还没有解决这个问题、但我可以根据您的信息确认根本原因、稍后我会尝试解决。