找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1533|回復(fù): 1
收起左側(cè)

循環(huán)按鍵小程序

[復(fù)制鏈接]
ID:452456 發(fā)表于 2018-12-23 19:39 | 顯示全部樓層 |閱讀模式
#include "Tool.h"
/* ===================================================================
**    OLED按鍵操作
** ===================================================================*/

void OLED_Debug()
  {   
      OLED_P6x8Str(6,0,"U_P");
      OLED_P6x8Str(6,1,"U_D");
      OLED_P6x8Str(6,2,"T_P");
      OLED_P6x8Str(6,3,"T_D");
      OLED_P6x8Str(6,4,"R_P");
      OLED_P6x8Str(6,5,"R_I");
      OLED_P6x8Str(6,6,"G_L");
      OLED_P6x8Str(6,7,"G_R");
      OLED_P6x8Str(70,0,"X");//互補濾波參數(shù)
      OLED_P6x8Str(70,1,"L");
      OLED_P6x8Str(70,2,"R");
      OLED_P6x8Str(70,3,"");
      OLED_P6x8Str(70,4,"");
      OLED_P6x8Str(70,5,"");
      OLED_P6x8Str(70,6,"");
      OLED_P6x8Str(70,7,"");

      int i = 0;

      while(1)
   {  Ad_Value();
   /********上按鍵   按下*光標(biāo)向上一行移動*********/
         if( gpio_get(E6) == 0 )  
         {  
           while(gpio_get(E6) ==0);
                        i--;
                     if( i < 0) i = 15;
                     switch(i)
                     {
                     case 0 : {OLED_P6x8Str(0,0,"*");OLED_P6x8Str(63,7," ");OLED_P6x8Str(0,1," ");}break;
                     case 1 : {OLED_P6x8Str(0,1,"*");OLED_P6x8Str(0,0," ");OLED_P6x8Str(0,2," ");}break;
                     case 2 : {OLED_P6x8Str(0,2,"*");OLED_P6x8Str(0,1," ");OLED_P6x8Str(0,3," ");}break;
                     case 3 : {OLED_P6x8Str(0,3,"*");OLED_P6x8Str(0,2," ");OLED_P6x8Str(0,4," ");}break;
                     case 4 : {OLED_P6x8Str(0,4,"*");OLED_P6x8Str(0,3," ");OLED_P6x8Str(0,5," ");}break;
                     case 5 : {OLED_P6x8Str(0,5,"*");OLED_P6x8Str(0,4," ");OLED_P6x8Str(0,6," ");}break;                     
                     case 6 : {OLED_P6x8Str(0,6,"*");OLED_P6x8Str(0,5," ");OLED_P6x8Str(0,7," ");}break;
                     case 7 : {OLED_P6x8Str(0,7,"*");OLED_P6x8Str(0,6," ");OLED_P6x8Str(63,0," ");}break;

                     case 8 : {OLED_P6x8Str(63,0,"*");OLED_P6x8Str(0,7," ");OLED_P6x8Str(63,1," ");}break;
                     case 9 : {OLED_P6x8Str(63,1,"*");OLED_P6x8Str(63,0," ");OLED_P6x8Str(63,2," ");}break;                     
                     case 10 : {OLED_P6x8Str(63,2,"*");OLED_P6x8Str(63,1," ");OLED_P6x8Str(63,3," ");}break;
                     case 11 : {OLED_P6x8Str(63,3,"*");OLED_P6x8Str(63,2," ");OLED_P6x8Str(63,4," ");}break;
                     case 12 : {OLED_P6x8Str(63,4,"*");OLED_P6x8Str(63,3," ");OLED_P6x8Str(63,5," ");}break;
                     case 13 : {OLED_P6x8Str(63,5,"*");OLED_P6x8Str(63,4," ");OLED_P6x8Str(63,6," ");}break;
                     case 14 : {OLED_P6x8Str(63,6,"*");OLED_P6x8Str(63,5," ");OLED_P6x8Str(63,7," ");}break;
                     case 15 : {OLED_P6x8Str(63,7,"*");OLED_P6x8Str(63,6," ");OLED_P6x8Str(0,0," ");}break;
                     }


         }

       /**************下按鍵   按下光標(biāo)向下一行移動***************************/  
          if( gpio_get(E5) == 0 )  
         {
           while(gpio_get(E5) ==0);
                     i++;
                     if( i > 15 ) i = 0;
                     switch(i)
                     {
                     case 0 : {OLED_P6x8Str(0,0,"*");OLED_P6x8Str(63,7," ");OLED_P6x8Str(0,1," ");}break;
                     case 1 : {OLED_P6x8Str(0,1,"*");OLED_P6x8Str(0,0," ");OLED_P6x8Str(0,2," ");}break;
                     case 2 : {OLED_P6x8Str(0,2,"*");OLED_P6x8Str(0,1," ");OLED_P6x8Str(0,3," ");}break;
                     case 3 : {OLED_P6x8Str(0,3,"*");OLED_P6x8Str(0,2," ");OLED_P6x8Str(0,4," ");}break;
                     case 4 : {OLED_P6x8Str(0,4,"*");OLED_P6x8Str(0,3," ");OLED_P6x8Str(0,5," ");}break;
                     case 5 : {OLED_P6x8Str(0,5,"*");OLED_P6x8Str(0,4," ");OLED_P6x8Str(0,6," ");}break;                     
                     case 6 : {OLED_P6x8Str(0,6,"*");OLED_P6x8Str(0,5," ");OLED_P6x8Str(0,7," ");}break;
                     case 7 : {OLED_P6x8Str(0,7,"*");OLED_P6x8Str(0,6," ");OLED_P6x8Str(63,0," ");}break;

                     case 8 : {OLED_P6x8Str(63,0,"*");OLED_P6x8Str(0,7," ");OLED_P6x8Str(63,1," ");}break;
                     case 9 : {OLED_P6x8Str(63,1,"*");OLED_P6x8Str(63,0," ");OLED_P6x8Str(63,2," ");}break;                     
                     case 10 : {OLED_P6x8Str(63,2,"*");OLED_P6x8Str(63,1,"");OLED_P6x8Str(63,3," ");}break;
                     case 11 : {OLED_P6x8Str(63,3,"*");OLED_P6x8Str(63,2," ");OLED_P6x8Str(63,4," ");}break;
                     case 12 : {OLED_P6x8Str(63,4,"*");OLED_P6x8Str(63,3," ");OLED_P6x8Str(63,5," ");}break;
                     case 13 : {OLED_P6x8Str(63,5,"*");OLED_P6x8Str(63,4," ");OLED_P6x8Str(63,6," ");}break;
                     case 14 : {OLED_P6x8Str(63,6,"*");OLED_P6x8Str(63,5," ");OLED_P6x8Str(63,7," ");}break;
                     case 15 : {OLED_P6x8Str(63,7,"*");OLED_P6x8Str(63,6," ");OLED_P6x8Str(0,0," ");}break;
                     }

         }

    /***************左按鍵  按下參數(shù)減小********************************/
        if( gpio_get(B3) == 0 )
        {
           while( gpio_get(B3) == 0);
              switch(i)
              {
              case 0 :  P_Up= P_Up-5;break;
              case 1 : D_Up=D_Up-1;break;
              case 2 : P_Turn=P_Turn-1;break;
              case 3 : D_Turn=D_Turn-2;break;
              case 4 : P_Run = P_Run-1;break;
              case 5 : I_Run = I_Run-0.2;break;
              case 6 :  {};break;
              case 7 :  {};break;
              case 8 : X=X-0.002;break;
              case 9 :  {};break;
              case 10 : {};break;
              case 11 : {};break;
              case 12 : {};break;
              case 13 : {};break;
              case 14 : {};break;
              case 15 : {};break;

              }


        }


    /***************右按鍵  按下參數(shù)的值增加********************************/
        if( gpio_get(B2) == 0 )
        {
         while(gpio_get(B2) ==0);
              switch(i)
              {
              case 0 :  P_Up= P_Up+5;break;
              case 1 : D_Up=D_Up+1;break;
              case 2 : P_Turn=P_Turn+1;break;
              case 3 : D_Turn=D_Turn+2;break;
              case 4 : P_Run = P_Run+ 1;break;
              case 5 : I_Run = I_Run+ 0.2;break;
              case 6 :  {};break;
              case 7 :  {};break;
              case 8 : X=X+0.002;break;
              case 9 :  {};break;
              case 10 : {};break;
              case 11 : {};break;
              case 12 : {};break;
              case 13 : {};break;
              case 14 : {};break;
              case 15 : {};break;
              }

                   }

        OLED_Print_Num1(25, 0, (int)( P_Up));
        OLED_Print_Num1(25, 1, (int)(D_Up));
        OLED_Print_Num1(25, 2, (int)(P_Turn));
        OLED_Print_Num1(25, 3, (int)(D_Turn));
        OLED_Print_Num1(25, 4, (int)(P_Run));
        OLED_Print_Num1(25, 5, (int)(10*I_Run));
        OLED_Print_Num1(25, 6, (int)(Gy_Left_AD));
        OLED_Print_Num1(25, 7, (int)(Gy_Right_AD));
        OLED_Print_Num1(85, 0, (int)(X*1000));
        OLED_Print_Num1(85, 1, (int)(RightAverage));
        OLED_Print_Num1(85, 2, (int)(LeftAverage));

    /****************中間鍵  確認(rèn)鍵  按下就退出按鍵調(diào)參數(shù)函數(shù)**************/
        if( gpio_get(D5) == 0 )
        {
          while(gpio_get(D5) ==0);
            OLED_Fill(0x00);  //初始清屏
            break;

        }
   }
}




回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2018-12-23 20:04 | 顯示全部樓層
補全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
頭文件
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表