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.

[参考译文] MSP-EXP430FR6989:如何为此器件创建捕捉中断

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1030284/msp-exp430fr6989-how-to-create-capture-interrupt-for-this-device

器件型号:MSP-EXP430FR6989

我正在尝试开发一个程序、从下而上读取 DHT-11传感器。 因此、我需要在捕获模式下使用计时器。

选择 P1.3作为捕捉输入。 我想在下降沿进行捕获。 但是、当我尝试将3.3V 连接到 P1.3然后去连接时、我无法创建中断。 这里可能出了什么问题? 也许我不理解计时器的某些方面。

int main(void)
{
  WDTCTL = WDTPW | WDTHOLD;

  P1SEL1 |= BIT3;     // 10 for secondary role
  P1SEL0 &= ~BIT3;
  P1DIR &= ~BIT3;

  PM5CTL0 &= ~LOCKLPM5;

  TA1CTL |= MC__STOP;
  TA1CCTL2 = CM_2 | CCIS_0 | CAP | CCIE | SCS; 
  TA1CTL = TASSEL__SMCLK | MC__CONTINUOUS;
  
  __enable_interrupt();
  
  while(1);
}

#pragma vector = TIMER1_A1_VECTOR
__interrupt void Timer_A1(void){
    __no_operation();
}

提前感谢。

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

    您必须启用全局中断。 此外、您说您施加3.3V 电压、然后断开连接。 什么可以确保在您断开连接后电压降至零?

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

    是的、我忘记在这里的示例代码中包含全局中断使能。 实数代码更长、但我都注释了不必要的部分。 因此、实际代码实际上与上述代码类似(启用全局中断时、我更新了上面的示例)。

    对于第二个问题、我使用万用表测量 P1.3上的电压并将其接地短路、以确保出现压降。 它不起作用-触发中断。

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

    我还尝试了上升沿或两个沿、并确保电压电平确实正确。 未触发中断。

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

    下面是一些有趣的发现:

    1. TA1R 始终运行

    TA1CCR2始终为0

    TA1CCTL0和 TA1CCTL1的 CCIFG 位始终为1、但 TA1CCTL2 CCIFG 始终为0。

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

    您好!

    根据器件数据表6-20、P1SEL1应为0、P1SEl0应为1。

    此致、

    现金 Hao

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

    啊、你是对的。 但在我的国防中、数据表包含两种不同的 P1.3函数顺序。 感谢您的回答。