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.

[参考译文] MSP430FR2633:是否存在手指释放事件的任何 API

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/864706/msp430fr2633-is-there-any-api-for-finger-release-event

器件型号:MSP430FR2633

您好!

触摸事件正常工作、但每次触摸传感器板时、它都会多次进入每次 触摸的回调函数、

这种行为是不允许的(就像按钮弹回)、因此我想检测手指释放事件、是否有任何 API 可以执行此操作?

(下面是我在上面所说的回调函数)

void my_keypad_callback (TSENSOR* pSensor)

   if (BTN00_E00.bTouch = true)
   {
       EUSCI_A_UART_transmitData (EUSCI_A0_BASE、0x51); //每次按都会使 UART 输出 0x51 多次
       VOL_UP_Press_Flag = true;
       __no_operation();
   }

....................................................................................................................................

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

    您好 Erik、

    每次扫描传感器后都会调用回调。

    可以根据是否触摸传感器来选择不同的操作。 例如、这里有一些宏用于4种可能的触摸状态中的每种状态。

    #define FIRST_TOUCH                    (pSensor->bSensorTouch = true)&&(pSensor->bSensorPrevTouch = false)
    #define EXIT_TOUCH                     (pSensor->bSensorTouch = false)&&(pSensor->bSensorPrevTouch = true)
    #define touch                          (pSensor->bSensorTouch == true)
    #define NO_TOUCH                       (pSensor->bSensorTouch == false)&&(pSensor->bSensorPrevTouch == false)

    示例如何使用:

    void keypad_callback (TSENSOR* pSensor)

       IF (FIRST_TOUCH)
            funcA();
       否则(触摸)
            funcB();
       否则、如果(EXIT_TOUCH)
            函数 C();
       否则、如果(no_touch)
             funcD();


           

    这是否有帮助?

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

    Dennis、

    它可以正常工作、但只有"first_touch "和"touch "具有响应、"exit_touch "和"no_touch "从不活动。

    下面的图片显示了自由运行行为、实际上这对我来说已经足够好了、但如果知道"exit_touch "不起作用的原因会更好、谢谢。

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

    您好 Erik、

    看看您的逻辑。  如果 BTN00_E01.bTouch = true、则只会处理"if"语句、因此不会处理 EXIT_TOUCH 或 NO_TOUCH。  请参见下面的。

    由于 BTN00传感器中似乎有多个元件、因此我假设这是一个键盘。  在这种情况下、通常一次只按下一个按钮。 您了解传感器的状态(它是第一次接触吗?、是触摸吗? 它是否退出?、它是否没有触摸?} 然后使用 CAPT_getDominantButton (pSensor)函数确定它是哪个元素或按钮、并调用所需的函数。

    例如:

    if (first_sensor_touch)

       //首次确定按下哪个按钮
       ui8DominantButton = CAPT_getDominantButton (pSensor);
       
       //现在检查这是按钮(E01)
       if (ui8DominantButton = 1)
          funcA();

    否则 if (sensor_touch)

       if (ui8DominantButton = 1)
          funcB();

    否则、如果(EXIT_TOUCH)

       if (ui8DominantButton = 1)
          函数 C();

    否则、如果(no_touch)

       funcD();

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

    Dennis、

    很抱歉、我不是很好、非常感谢!