关于if((P1IN&temp)==(!temp))解释
MSP430的按键中断程序中有这样写到:#pragma vector = PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
unsigned int i;
unsigned char temp;
temp = P1IFG;
for(i=0;i<0x1fff;i++);
if((P1IN&temp)==(!temp))
{
switch(temp)
{
case 1: P2OUT ^= BIT1;break;
case 2: P2OUT ^= BIT2;break;
case 4: P2OUT ^= BIT3;break;
case 8: P2OUT ^= BIT4;break;
}
}
P1IFG = 0;
}
其中这句if((P1IN&temp)==(!temp))感觉解释不通,当有按键中断时(比如是BIT1),则P1IN=0XFD,temp=0X02,PIN&temp=0X00;不可能等于(!temp)=0xfd; 求高手指点..... 丫的那里有个延时啊,延时完了差不多久弹起来了,不然就是手贱 永远不要分析傻屄的程序,否则将被拉到相应水平。
编程要有自己的想法。 延时完那P1IN=0XFF,,P1IN&temp=0X02;也不等于(!temp)=0xfd啊。。 就没见过在中段里面搞延时的SB啊 zoujixing 发表于 2013-9-12 22:15 static/image/common/back.gif
延时完那P1IN=0XFF,,P1IN&temp=0X02;也不等于(!temp)=0xfd啊。。
兄弟,你知道!和〜的区别吗?孔乙己估计知道 zoujixing 发表于 2013-9-12 22:15 static/image/common/back.gif
延时完那P1IN=0XFF,,P1IN&temp=0X02;也不等于(!temp)=0xfd啊。。
你的智商现在已经被拉低了,!temp只有两个结果,0 或者1 多谢提醒,了解了 各位大神别再说了,我都想挖个坑跳下去了 zoujixing 发表于 2013-9-12 22:28 static/image/common/back.gif
各位大神别再说了,我都想挖个坑跳下去了
不是你的错,你这属于被别人带到沟里去了 !是逻辑非得意思,而不是取反~, 所以存在满足的时候。
页:
[1]