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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4008|回復: 14
收起左側

請問按鈕怎樣關機和開機?附單片機程序

[復制鏈接]
ID:103131 發表于 2021-5-10 15:58 | 顯示全部樓層 |閱讀模式
按鈕要長按才能顯示關機,放手就不行了,我想要的是按一下就永久關機,再按一下就永久開機。

void KEY_TEST2(void)
{
    static unsigned int i = 0;
     if(KEY2==0)//按鍵1
       {
        delay_ms(50);
        if(KEY2==0)
          {     
             i = ++i%2;        
                        
                           printf("i =  %d\r\n",i);
              switch(i)
                          {
                                  case(0):
                                       
                                          POWER_OFF_MODE();break;

                                  case(1):
                                       
                                        AD_TEST();break;
                                 
                          }   
                            while(!KEY2);
                   }
                  
                }
         
}




void main(void)
{        
        
        
               

        while(1)
        {               
         
                 AD_TEST();
                 KEY_TEST2();
               
        }


               


               
}


回復

使用道具 舉報

ID:103131 發表于 2021-5-10 18:14 | 顯示全部樓層
為什么程序一起工作,按鈕按下沒法鎖定信號?
回復

使用道具 舉報

ID:101869 發表于 2021-5-10 20:16 來自觸屏版 | 顯示全部樓層
while(!KEY2);這個是等待按鍵抬起,一般都是抬起后再執行關機吧
回復

使用道具 舉報

ID:103131 發表于 2021-5-10 20:40 | 顯示全部樓層
非凡科技 發表于 2021-5-10 20:16
while(!KEY2);這個是等待按鍵抬起,一般都是抬起后再執行關機吧

兩個函數一起運行,KEY按下后再放下就沒有鎖定了,請問有什么辦法讓按一下關閉,再按一下就打開?
回復

使用道具 舉報

ID:889094 發表于 2021-5-10 21:42 | 顯示全部樓層
   i = ++i%2;        神一樣的句子,讓我專門去百度%和左++的優先級

按一下關,再按一下開,直接檢測放開不好么?
按下,消抖,等待放開然后操作,似乎更容易理解一些,你如果想按下和放開有不同的操作的話才會一定要在按下的時候來執行操作的。

另外求教一下:    printf("i =  %d\r\n",i);是打印到串口了嗎?函數是怎么重定向的?
回復

使用道具 舉報

ID:889094 發表于 2021-5-10 22:02 | 顯示全部樓層
goldbirderman 發表于 2021-5-10 20:40
兩個函數一起運行,KEY按下后再放下就沒有鎖定了,請問有什么辦法讓按一下關閉,再按一下就打開?

單片機怎么會有同時執行的問題?單片機是任務執行的,應該沒有同時執行的情況吧
回復

使用道具 舉報

ID:101869 發表于 2021-5-10 22:23 來自觸屏版 | 顯示全部樓層
把開關取反就行了
回復

使用道具 舉報

ID:213173 發表于 2021-5-11 07:40 | 顯示全部樓層
樓上討論的都不在問題核心點上。此按鍵函數內只在開/關機函數中2選1調用,但主函數始終在執行開機函數,當然按鍵關機后一旦松手即又開機,是樓主犯了邏輯錯誤。
回復

使用道具 舉報

ID:824490 發表于 2021-5-11 09:04 | 顯示全部樓層
http://www.zg4o1577.cn/bbs/dpj-203511-1.html
看年這個對你是不是有幫助?
回復

使用道具 舉報

ID:103131 發表于 2021-5-11 14:33 | 顯示全部樓層
wulin 發表于 2021-5-11 07:40
樓上討論的都不在問題核心點上。此按鍵函數內只在開/關機函數中2選1調用,但主函數始終在執行開機函數,當 ...

static  unsigned int i = 0;

    if(KEY2==0)//按鍵1
       {
        delay_ms(50);
        if(KEY2==0)
          {     
            i++;
                          if(i>1)
                                  i = 0;
                       
                           printf("i =  %d\r\n",i);
              switch(i)
                          {
                                  case(0):
                                       
                                       while(!i)
                                          POWER_OFF_MODE();break; 我改成這樣就可以鎖定,可是沒法讓它開機
回復

使用道具 舉報

ID:213173 發表于 2021-5-11 16:01 | 顯示全部樓層
goldbirderman 發表于 2021-5-11 14:33
static  unsigned int i = 0;

    if(KEY2==0)//按鍵1

不要白忙活,原來的按鍵程序可以用,把main函數里AD_TEST();注釋掉即可。
void main(void)
{        
        while(1)
        {
//                AD_TEST();
                KEY_TEST2();
        }
}
回復

使用道具 舉報

ID:103131 發表于 2021-5-11 16:17 | 顯示全部樓層
wulin 發表于 2021-5-11 16:01
不要白忙活,原來的按鍵程序可以用,把main函數里AD_TEST();注釋掉即可。
void main(void)
{        

可是我AD_TEST()這個函數也要運行
回復

使用道具 舉報

ID:139866 發表于 2021-5-11 16:51 | 顯示全部樓層
goldbirderman 發表于 2021-5-11 16:17
可是我AD_TEST()這個函數也要運行

那就設置標志位,別直接拿去用函數
回復

使用道具 舉報

ID:103131 發表于 2021-5-11 16:54 | 顯示全部樓層
天ノ憶 發表于 2021-5-11 16:51
那就設置標志位,別直接拿去用函數

怎樣標志位?
回復

使用道具 舉報

ID:609524 發表于 2021-5-12 10:58 | 顯示全部樓層

設置一個標志位,為1開,為0關,標志位到按鍵里面取反就行了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 作爱视频免费看 | 麻豆成人在线视频 | 成人影院在线 | 欧美一区二区三区在线播放 | 久久乐国产精品 | 在线中文视频 | 久久乐国产精品 | www久久久| 69av网| 久久久精品影院 | 国产综合久久 | 日韩激情视频一区 | 日韩免费高清视频 | 日韩毛片在线观看 | 伊人网站| 欧产日产国产精品视频 | 久久er精品 | 国产高潮好爽受不了了夜色 | 波多野结衣一区二区 | 亚洲精品电影在线观看 | 福利av在线| 97av视频在线观看 | 日韩一区二区三区在线视频 | 台湾佬伊人 | 亚洲精品免费观看 | 欧美日韩国产在线观看 | www.99热 | 亚洲精品国产区 | 日本不卡高清视频 | 在线观看黄免费 | 人人干人人干人人 | 亚洲国产精品网站 | 国产在线不卡 | 麻豆精品国产91久久久久久 | 伊人激情综合网 | 久草青青草 | 在线观看国产精品视频 | 九九久久国产 | 丁香婷婷综合激情五月色 | 在线观看中文字幕一区二区 | 成人久草 |