AVR小段程序不解

2019-03-24 21:03发布

void main()
{
  port_init();
   while(1)
  {
    if( ((PINC & SET ) == 0x00) & ((PINC & SET)== 0x00))
  {
   flag_set = 1;
  }
  if( flag_set == 1 )
  {
   PORTD = 0xff;
  }
}
}   我在按下键设置了个全局变量的标志位   为什么只有在按下键时候PD才为高电平呢 设置了标志位 应该按一次 不按也为高啊 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
tiankai001
2019-03-24 22:58
if( ((PINC & SET ) == 0x00) & ((PINC & SET)== 0x00))

这里,你的运算关系不对,位运算符和逻辑运算符混乱,
应改为if( ((PINC & SET ) == 0x00) & &((PINC & SET)== 0x00))
并且你这里连用两个与操作,操作对象都一致,是什么意思?



别的暂时没看出什么问题

一周热门 更多>