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.

[参考译文] MSP430FR2033:中断延迟

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/587918/msp430fr2033-interrupt-latency

器件型号:MSP430FR2033

我使用计时器 A1 CCR1来捕获协议的边沿(上升沿和下降沿)

对于上升沿,我将获得延迟为100微秒的中断,而下降沿几乎将获得 延迟为150微秒的中断。

如何降低中断延迟。

请查看我用于边缘检测的以下代码。

#define SETUP_Timer1{\
CSCTL4 |= SELA_REFOCLK;/* ACLK = 32768Hz*/\
P4SEL0 |= DATA_IN;\
TA1CTL = tassel_1 + MC_2 + TACLR + TAIE;\
TA1CCTL0 = 0;\
TA1CCTL1 = 0;\
TA1CCTL2 = CCIE;\
TA1CCR0 = 13108;/*400ms 预加载以启用正确的开始时间*/\

#define CAPTURE_RISE_EDGE{\
TA1CCTL1 = CM_1 + SCS + CCIE + CAP + CCIS_0;\
P4SEL0 |= 0x01;\

#define CAPTURE_FALLING_EDGE{\
TA1CCTL1 = CM_2 + SCS + CCIE + CAP + CCIS_0;\
P4SEL0 |= 0x01;\

此致、

Shravan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否使用了一些低功耗模式?

    您如何测量延迟?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用 LPM3、我使用 GPIO 切换测量了时序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MCLK、SMCLK 和 ACLK 使用哪些时钟源? 您是否正在使用 FLL? 晶体振荡器是否在 LPM3中停止?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    DCO、MCLK、SMCLK-16 MHz
    aclk-32kHz
    DCO 的内部参考32k
    我不使用 fll。
    对于计时器、我使用的是 aclk。

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

    总之、REFO 和 DCO 都可以快速启动。 数据表的表5-2显示了 LPM3的唤醒时间要短得多。

    请显示执行 GPIO 切换的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即使在我在活动模式下测试的情况下、也是 lpm0模式。
    延迟时间无变化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在数据表中、lpm3的唤醒时间通常为10usec。 lpm0小于1 usec。
    但需要花费将近150 μ s 才能获得中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能不能在我测量中断延迟时间的代码下执行以下操作。 我将与外部信号进行 GPIO 切换比较。
    #pragma vector=Timer1_A1_vector
    _interrupt void CCR1_CCR2_vector (void){//使用 TAIV 中断表的 CCR1和 CCR2
    LedToggle (ISO_FAULT_LED);
    开关(_偶数_in_range (TA1IV、14)){
    案例2:代码
    案例4:代码
    案例14:代码
    默认值:
    从不执行();

    返回;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    LedToggle ()函数的作用是什么?

    配置 P1.4以输出 MCLK。 边沿开始多快? MCLK 启动后多久、GPIO 被切换?