按钮未关闭的MSP430问题

时间:2016-11-24 06:23:57

标签: c embedded msp430

我正在为msp430制作一个程序。

第一次按键点击时,增量会消失。释放按钮时它不会停止。

每次按键点击如何将增量限制为一次增量?

#include <msp430.h>

int main(void)
{
   int i; //delay variable
   int dimeRead=0;
   int desired=1000;
   volatile int total=0;

   P1OUT=0;                  //Supposed to get rid of it hanging at the top
   WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer

   while(total<desired)
   {
      if((P1IN&0x16)!=0x16) // check if switch is pressed or not
      {
         dimeRead=dimeRead+1;
         total=total + 10;
      }

      //Goal is to flip an out put on to turn on light when desired number is hit.
   }

   return 0;  
}

3 个答案:

答案 0 :(得分:0)

  if((P1IN&0x16)!=0x16)  , 

当按钮未被按下时,此语句为真。你应该用等号改变它。

我也不确定0x16来自哪里,我想你也应该再看看它。

答案 1 :(得分:0)

首先用这样的面具写你的按钮针 import mechanize br = mechanize.Browser() br.set_handle_equiv(False) br.set_handle_robots(False) br.addheaders = [('User-agent','Mozilla/5.0 (X11; Linux x86_64; rv:18.0)Gecko/20100101 Firefox/18.0 (compatible;)'),('Accept', '*/*')] text = "1500103233" br.open("http://14.139.185.148/kms/index.php/results/create").read() for forms in br.forms(): print forms br.select_form(nr=0) br['Results[streamId]']=['1',] #Medical #etc.. response = br.submit() print response.read() (1和2更改为您的引脚)它对视觉错误控制更好。 在第二个语句中检查所有按下的按钮#define MASK PIN1 | PIN2

现在你的陈述if ((P1IN&MASK)==MASK)检查3个引脚(PIN1,PIN2,PIN4)是否处于Hi状态,何时它是假的代码

if((P1IN&0x16)!=0x16)

如果要在按下一个或两个按钮时增加,则语句必须与此{ dimeRead=dimeRead+1; total=total + 10; }

类似

所有这一切都适用于按下时按下(HI状态)按钮,下拉(LOW状态)为if((P1IN&MASK)!=0)

在debounse按钮增加后添加一些延迟。 如果您的按钮通过PIN和接地连接,则必须为此引脚/

启用上拉

答案 2 :(得分:-1)

我没有授权发表评论,所以我写的是答案。如果没有记错的话,每次按下按钮都会尝试增加if。这就是它应该是这样的原因。

if((P1IN&0x16) == 0x16)

但我想提及以下内容:

if((P1IN&0x16) == 0x16)

通过编写此声明,您期望P1.1,P1.2和P1.4为高。