久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

作者: 羅富永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.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩久久久久 | 国产区一区 | 国产视频2021 | 成人av鲁丝片一区二区小说 | 久久人人爽人人爽 | 国产乱码一二三区精品 | 久久精品国产v日韩v亚洲 | 91精品国产综合久久婷婷香蕉 | 一级黄色淫片 | 国产95在线 | 欧美一区二区视频 | 国产一级毛片精品完整视频版 | 国产高清一区二区三区 | 美女久久视频 | 亚洲福利av | 九色在线视频 | 蜜桃av鲁一鲁一鲁一鲁 | 成人在线视频一区二区三区 | 黄色片网站国产 | 日本一区二区在线视频 | 色噜噜色综合 | 欧美精品综合在线 | 国产激情亚洲 | 亚洲精品久久久一区二区三区 | 国产日韩久久久久69影院 | 亚洲精品成人av久久 | 日批日韩在线观看 | av电影手机版 | 中文字幕亚洲无线 | 日本久久综合网 | 国产午夜精品视频 | 亚洲成人综合社区 | 99久久婷婷国产综合精品电影 | 久久久99精品免费观看 | 国产成人免费在线观看 | 国产免费国产 | 国产在线一区二区 | 精品视频999 | 亚洲高清视频一区 | 久久久久久国产精品免费免费 | 中文字幕在线一区二区三区 |