我正在为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;
}
答案 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为高。