标题: c语言标志位问题 [打印本页]

作者: 雪花太    时间: 2017-3-17 21:20
标题: c语言标志位问题
bit zf_flag;                      //zf_flag=0,关门;zf_flag=1,开门;为电机正反转标志位
bit qt_flag;                    //qt_flag=0,停止;qt_falg=1,运行;为电机运行停止标志位
uchar code table[]={0x19,0x38,0x2d,0x64,0x46,0xd2,0x83,0x91,0x91,0x83,0xd2,0x46,0x64,0x2d,0x38,0x19};
//电机正反转,数组前八位为开门,后八位为关门.

void delay1ms(uint m)        //延时1ms
{
  uint i,j;
  for(i=0;i<m;i++)
  for(j=0;j<110;j++);
}
void dispose()
{
  if(!xw1)
  {
    delay1ms(10);
if(!xw1)
{
   qt_flag=0;
}
  }

  if(!xw2)
  {
    delay1ms(10);
if(!xw2)
{
   qt_flag=0;
}
  }

  if(rhw==1)
  {
    zf_flag=1;
qt_flag=1;
  }

  if(!kq)
  {
    delay1ms(10);
if(!kq)
{
   zf_flag=1;
   qt_flag=1;
}   
  }   
}


我想按下一个键,标志位就改变,但是运行的时候,只有把按键一直按下,才改变,松开就恢复原样了。

作者: mmm12345    时间: 2017-3-17 21:20
程序好像没什么问题,是不是电路问题
作者: angmall    时间: 2017-3-17 22:22
发个电路原理图看看
作者: 1349467433    时间: 2017-3-17 23:00
检查下申请的标志位是不是全局变量,局部的是不可以的
作者: 215073796    时间: 2017-3-18 01:02
加一个无限循环上去,不加的话代码只执行一次,再加一条关闭的代码




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1