欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機紅外遙控程序問題,為什么要按兩次才加一? [打印本頁]

作者: 羅富永1    時間: 2019-3-21 15:43
標題: 單片機紅外遙控程序問題,為什么要按兩次才加一?
}
  if(IrValue[2]!=~IrValue[3])
  {
   return;
  }
  switch(IrValue[2])
  {
   case 0x19: key_do=~key_do;break;
   Delay10Ms(100);
   case 0x40: key_up=~key_up;break;
   Delay10Ms(100);
   case 0x44: key1=~key1;break;
   Delay10Ms(100);
  }

把遙控當按鍵使用,為什么要按兩次才加一

作者: zhb2004xp    時間: 2019-3-21 18:54
只看到key_do\key_up\key1反轉,沒看到你+1的程序在哪
作者: 羅富永1    時間: 2019-3-21 22:52
zhb2004xp 發表于 2019-3-21 18:54
只看到key_do\key_up\key1反轉,沒看到你+1的程序在哪

void key()
{
        if(!key1)
        {
                delays(10);
                if(!key1)
                {
                        key_num++;
                        while(!key1);
                }
        }
        if(key_num==1)
        {
                LcdShowstr(2,0,">");
                if(!key_up)
                {
                        delays(10);
                        if(!key_up)
                        {
                                Temphigh++ ;
                                if(Temphigh>99)
                                Temphigh=99;
                                while(!key_up);
                        }
                }
                if(!key_do)
                {
                        delays(10);
                        if(!key_do)
                        {
                                Temphigh--;
                                if(Temphigh<Templow)
                                Temphigh=Templow;
                                while(!key_do);
                        }
                }
        }
                if(key_num==2)
        {
                LcdShowstr(2,0," ");
                LcdShowstr(11,0,">");
                if(!key_up)
                {
                        delays(10);
                        if(!key_up)
                        {
                                Templow++;
                                if(Templow>Temphigh)
                                Templow=Temphigh;
                                while(!key_up);
                        }
                }
                if(!key_do)
                {
                        delays(10);
                        if(!key_do)
                        {
                                Templow--;
                                if(Templow<0)
                                Templow=0;
                                while(!key_do);
                        }
                }
        }
        if(key_num==3)
        {
                key_num=0;
                LcdShowstr(2,0," ");
                LcdShowstr(11,0," ");
                Write_add_24c02(0,Temphigh);
            delays(50);
            Write_add_24c02(1,Templow);
            delays(50);
        }
}
作者: 羅富永1    時間: 2019-3-22 01:03
望大神們知道一下
作者: zhb2004xp    時間: 2019-3-22 01:21
?你這個程序思路有問題啊,還是你直接把現有的程序拼接出來的,并沒有理解程序的運行過程?
使用紅外遙控代替按鍵,就直接代替按鍵了,case 0x44: key1=~key1;break;這里就不需要作key1=~key1,直接在這里寫你需要key1按下時要做的程序就好了!
另外你為什么要再加一個按鍵掃描的程序(就是你第二次貼出來的程序)?這個按鍵掃描是用來掃描檢測真實按鍵用的,這個按鍵掃描程序先掃描到某個按鍵(如key1)按下,(其中還有個消抖的過程),其中雖然執行了key_num++,但程序會等待按鍵(key1)松開,才會去執行下一步程序。
所以你用紅外遙控代替按鍵時,按1次(key1=0),按鍵掃描程序檢測到key=0,會執行key_num++語句,但會停止在while(!key1)語句,只有你按第2次(key1=1,相當于松開按鍵),程序才會繼續向下執行
作者: 羅富永1    時間: 2019-3-22 09:32
zhb2004xp 發表于 2019-3-22 01:21
?你這個程序思路有問題啊,還是你直接把現有的程序拼接出來的,并沒有理解程序的運行過程?
使用紅外遙控 ...

哈哈哈,我就是有真實按鍵在的程序,然后想加個紅外,不能這樣直接加嗎,還是我思路有問題




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1