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.

[参考译文] MSP430FR2111:P2.0中断取决于 eComp 输出的状态

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/831703/msp430fr2111-p2-0-interrupt-dependent-on-state-of-ecomp-output

器件型号:MSP430FR2111

在 LPM3中运行。 启用2个 ISR。 一个 ISR 用于 RTC。 在此例程中、我更新了一个计时寄存器并检查 eComp 输出(内部)的状态。 如果它为高电平、我将清除一个标志。 如果它为低电平、我会设置一个标志。 它看到一个正常的 RTI。 第二个 ISR 用于 P2.0、设置为从高到低转换中断。 我发现当 eComp 输出为高电平时、不会发生 P2.0中断。 如果 eComp 输出为低电平、P2.0中断工作正常。

当 eComp 打开且输出为高电平时、P2.0引脚中断是否存在任何已知问题?

ConnectP1  mov.b  #001h、&P1SEL0          ;将 TimerB 连接到 P1.6 Comp P1.0**
           MOV.b  #041h、&P1SEL1          ;将 TimerB 连接到 P1.6 Comp P1.0**
ConnectP2  mov.b  #000h、P2SEL0          ;将振荡器连接到 P2.6、7   **
           MOV.b  #0C0h、&P2SEL1          ;将振荡器连接到 P2.6、7   **
SetupP1   bis.b  #0FEh、&P1DIR         ;P1.1 - P1.7输出,P1.0输入  **
SetupP2   bis.b  #0FEh、&P2DIR         ;P2.1- P2.7输出,P2.0输入  **
受影响的 RTC ISR 的一部分
        MOV.w  &RTCIV、R15
           
        bit.w   #CPOUT、&CPCTL1       ;比较器输出是否已设置?
        JC      BatGood              ;是的
        BIS.w  #LVTActive、flagreg   ;否
        BIS.w  #CPDACSW、&CPDACCTL  ;打开 DAC 输出2
        JMP   通道24.
BatGood    BIC.w  #LVTActive、flag    
        BIC.w  #CPDACSW、&CPDACCTL  ;打开 DAC 输出1
Chk24      bit.w  #mode24、flag
        Jnc    RTCDone
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    根据最新的勘误文档、我不知道这一点。

    您表示已为 P2.0设置第二个 ISR、请在从高电平转换为低电平时生成中断。  您可以描述、当 eComp 输出为高电平时、不会发生中断、当 eComp 变为低电平时、中断工作正常。  根据您为 P2.0设置的"从高到低"转换、它按预期工作、除非我误解了某些内容。

    您是否打算在从任一状态转换时捕获中断、在这种情况 下、eComp (请参阅第18.3节)可以生成中断来执行此操作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dennis、
     也许我需要将其剥离至我描述的基本问题、并对其进行测试、看看问题是否仍然存在。 但在偶然的机会上、我会说一件响铃的事情、下面是正在发生的事情:
    我有一个 RTC 中断、它更新24小时计时器、如果设置了24小时标志、则检查它是否为0。 这种情况每5秒发生一次。 在通过 P1.0作为+输入和 DAC 作为-输入添加电池电压的比较器检查后、我的问题出现了。 我之前在另一个 ISR (timerb ISR)中执行过比较器检查、在此期间我打开比较器进行检查并关闭比较器。
    我有一个 P2.0输入连接到一个带有外部上拉电阻器的开关、并且它有一个高到低转换中断例程。 这个例程只清除中断标志、然后在返回前清除 LPM3位设置。
    我将 timerb 设置为 PWM、并将其10ms 周期用作中断、以驱动事物的主要操作。
    在 LPM3模式下、设备大部分时间处于睡眠状态、它会因 RTC 中断而唤醒、当按下开关时、在设备运行时中断切换至 LPM1/AM。 然后它返回到 LPM3。
    如果在比较器输出端为高电平和低电平的情况下运行调试器、则会执行 RTC 例程。 它会立即返回休眠状态。 如果比较器为高电平、则切换中断永远不会发生。 当比较器为低电平时、始终会发生这种情况。
    我尝试打开比较器并使其保持开启状态、并且只在 RTC 例程期间读取其输出。
    David Martin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    感谢您提供详细信息。  让我更深入地探讨一下这个问题。  我将在我的一侧设置相同的值以进行测试。

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

    尊敬的 David:

    我认为我可能已经发现了这个问题。  根据 用户指南

    如果我正确读取了这个值、只要你在 P2.0上选择 COUT 函数(P2SEL1=1、P2SEL0=0)、那么你就不会在 P2.0上看到由你的开关引起的中断。 在代码中、您是否在 GPIO 和 COUT 之间切换 P2.0的功能?

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

    Dennis、

    [1]我没有将 COUT 连接到 P2.0。 P2.0是数字输入引脚。 我向您发送了用于设置选择寄存器的代码片段。 这又是:

    ConnectP1  mov.b  #001h、&P1SEL0          ;将 TimerB 连接到 P1.6 Comp P1.0**
               MOV.b  #041h、&P1SEL1          ;将 TimerB 连接到 P1.6 Comp P1.0**
    ConnectP2  mov.b  #000h、P2SEL0          ;将振荡器连接到 P2.6、7   **
               MOV.b  #0C0h、&P2SEL1          ;将振荡器连接到 P2.6、7   **
    SetupP1    bis.b  #0FEh、&P1DIR           ;P1.1 - P1.7输出、P1.0输入  **
    SetupP2    bis.b  #0FEh、&P2DIR           ;P2.1- P2.7输出、P2.0输入  **
    如您所见、P2.0是数字输入。 P2SEL =00
    我将删除此代码、以将其简化为今天的这个问题。 昨天、我通过调试模式重新检查了情况、并看到了同样的情况。 我先前向您发送了 RTC 中断例程的相关部分、其中显示了电池测试和良好/不良路径。 当比较器为低电平时、P2.0中断工作;当比较器为高电平时、P2.0中断不工作。 同样、如果我关闭 CPEN、中断会工作、因为输出为低电平。 感谢您对此问题的支持。 希望我/我们能够在今天找到问题的最根本。
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是一个黑暗中的镜头:尝试设置 SYSCFG2:TB0TRGSEL=1 [参考数据表(SLASE78C)表6-13]。 您似乎没有使用 P1.2、我认为由于 P1SEL.2=00B、这会有效地禁用 TBOUTH、更一般的情况下、CPOUT 将远离这些引脚中的任何一个。 (我个人觉得 CPOUT 路由的描述有点模糊。)

    如果没有其他内容、这将阻止 P1.6上的 PWM 停止。

    我没有特别的理由认为这会解决您的症状、但它应该是(?) 快速实验。

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

    Bruce、

    非常感谢。 这可能是在黑暗中拍摄的照片、但我认为您达到了目标。 我需要做更多的测试、但看起来它已经解决了问题。 我怀疑我会发现(偶然发现)这一点。

    David Martin

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

    现在我们只需要一个假设(:-))。

    我很高兴您能正常工作。

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

    感谢 Bruce 为您的一天做了宝贵的准备。

    在这种情况下、文档完全模糊或缺失。

    我将与产品团队合作、修订文档、使其更加清晰。

    David -除非你有任何其他问题、否则听起来你很乐意去。