MSP430按键的问题,有关长按,有关P1IN

按键之后P1IN&BIT3就为1了,那么放开按键的那一刻P1IN&BIT3就为0了吗?
那这样来判断长按为什么不对呢。。——————
__delay_cycles(1000000);
if(P1IN&BIT3>>3)
{

如果P1IN就是一松开按键相应位就为0了的话为什么这样不能判断长时间按键呢?
如果P1IN并不是这样求解释P1IN到底是怎样的?那要怎么做呢?(不要例程里那种开个定时器时刻在那儿状态机检测的)
MSP430G2553

判断按键要设对应的引脚方向为输入。按键之后P1IN&BIT3就为1了,放开按键的那一刻P1IN&BIT3就为0了。
判断按键是一直按着的要用if(P1IN&BIT3==1) ,而不是if(P1IN&BIT3>>3)
温馨提示:内容为网友见解,仅供参考
无其他回答

MSP430的P1口部分设置为输入部分设置为输出的时候,PIOUT是指有几位啊...
P1OUT|=BIT0+BIT1;p1.0,p1.1输出高,其余不变 P1OUT&=~BIT0+BIT1;p1.0,p1.1输出低,其余不变

MSP430的端口设置问题
可通过设置PxSEL寄存器进行选择,某位写“0”为I\/O;写“1”为“第二功能”。用到比较器(片内外围模块)时要设置为第二功能。当然你如果是用片外的比较器,将其输出的高低电平(1或0)送给MSP430,那就选“第一功能”。

MSP430 (P1IN & BIT1) == 1 错误,但是(P1IN & BIT1) != 0正确,为何?
430中的BIT不是位标志,而是指字节或字中的位置数。比如BIT0=0X01BIT1=0X02BIT2=0X04BIT3=0X08P1IN & BIT0等于P1IN & 0X01

写一个程序,msp430单片机控制,定义p1.0为输入口,p1.1为输出口,输入高电...
include <msp430x41x.h> \/\/系统文件夹内找 include "main.h" \/\/当前文件夹内找 main( void ){ WDTCTL = WDTPW + WDTHOLD;\/\/ Stop watchdog timer to prevent time out reset Sys_Init();while(1){ if((P1IN&BIT0) == BIT0)P1OUT |= BIT1;else P1OUT &= ^BIT1;} } ...

MSP430单片机无法进入外部中断!紧急求助!
上一步没问题了,再放个断点在标志位判断那个括弧里,就是if(P1IFG & BIT0)这句后边。如果进不了,那就是这里的问题,我一般是这样写的(芯片不一样哦):\/\/ pragma vector=PORT1_VECTOR __interrupt void PORT1_RST(void){ __delay_cycles(2000);switch(__even_in_range(P1IV, 16)){ ...

MSP430F149 端口分配问题
MSP430各端口具有丰富的控制寄存器供用户实现相应的操作。其中P1,P2具有7个寄存器,P3~P6具有4个寄存器。通过设置寄存器我们可以实现:(1)每个I\/O位独立编程;(2)任意组合输入,输出和中断;(3)P1,P2所有8个位全部可以用作外部中断处理;(4)可以使用所以指令对寄存器操作;(5)可以按字节输入、输出,也可...

msp430f149按键程序
if(P1IFG&BIT0) \/\/第0个按键被按下 { delay1();if(~(P1IN&BIT0)){ while((P1IN&BIT0)==0 ); \/\/等待按键放开 x=x+100;if(x>4500)x=4500;P1IFG =0x00;} } \/***消抖的延时***\/ void delay1(void){ uint tmp;for(tmp = 65000;tmp > 0;tmp--);} ...

msp430提问: P4DIR |= BIT0; P4OUT &=~ BIT1; 这几个寄存器我都能看懂...
而不影响其他位。比如P4DIR原来的值为1111 0000 执行P4DIR |=BIT0;就相当于 1111 0000 与0000 0001相或,结果为1111 0001,这样就没有改变原来位的值,同理 P4OUT &=~ BIT1;是把P4OUT的第1位变为低,其他位不变。关于寄存器地址可以看430单片机的用户指南。在TI的官方网站可以下到。

怎么在烧录的时候在msp430g2553的information memory中烧录参数_百度知 ...
\/\/*** 按键的IO口宏定义 define BUTTON_S1 (P1IN & BIT7)define BUTTON_S2 (P2IN & BIT2)\/\/ \/\/*函数: void delay(uint16_t x_ms)\/\/*功能: 延时程序 \/\/*参数: x_ms(单位:ms)\/\/*返回: 无 \/\/*备注: 无 \/\/ void delay(uint16_t x_ms){ uint16_t i=0,j=0...

msp430为什么要用.h文件
当然了,如果仅仅是简单的功能,只有一个C文件,也可以放在一起,不用.h文件。但是对应的430芯片型号的。h文件还是要的,因为它里面定义了寄存器,寄存器地址等。至于说用多个文件,是因为要让调理清晰,在改写程序的时候很容易找到你要改的程序在哪,如果只有一个文件,里面什么都有,调理不清晰,修改...

相似回答