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.

[参考译文] CCS/MSP430F6459:交换机

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/659987/ccs-msp430f6459-switch

部件号:MSP430F6459

工具/软件:Code Composer Studio

您好,

我正在使用交换机印刷。我按了多少次计数开关。为此,使用了中断方法。 如果我按1次会得到不同的计数。如何解决?如何使用MSP430使用软件去功能??

谢谢。

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

    在线提供多种按钮弹出解决方案。 从硬件角度来看,您可以使用下拉电容器。 对于软件,您需要输入ISR,延迟几微秒,然后检查针脚的输入值是否仍处于按下状态,如果为真,则只增加计数器。

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

    您好,

     实际上,延迟并不是正常工作。是否还有其他方法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    延迟将不起作用。 您需要的是一种暂时禁用按钮中断的方法,然后在特定延迟后再次启用它。
    这可以通过以下方式来实现:
    *您从按钮接收第一个中断。
    *您禁用按钮中断(如果需要,还需清除相应的IFG)。
    *您启动计时器以在~150毫秒后中断。
    *在计时器中断内,您可以再次启用按钮中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

     我在ISR中做了这样的事情,然后也没有得到适当的计数

    #pragma vector = Port1_vector
    __interrupt void port_1 (void)

    Switch(__偶 数_in_range(P1IV,16))

    案例0:中断;
    案例2:中断;
    案例4://WFP 1.1
    P1IE &=~BIT1;//禁用中断
    计数++;

    Bite _返回_状态= 1;
    P1IE |= BIT1;//启用中断
    TA0CCR0 = 6.4万;//2秒
    TA0CTL |= tassel_1 + MC_1 + TCLR + TAIE;//aclk=32kHz
    IF (DU_PRESS计数> 0)
    Bite _返回_状态_结束= 1;
    }
    P1IFG &=~BIT1;
    中断;
    案例6:中断;
    案例8:
    中断;
    案例10:中断;
    案例12:中断;
    判例14:中断;
    判例16:中断;
    默认值:中断;
    }
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在重新启用P1IE之前,您的代码实际上并不等待定时器ISR,而且您没有提供定时器ISR本身,在那里我们可以看到定时器被禁用,按钮中断被重新启用。

    此致,
    Ryan