⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui.c

📁 台湾凌阳方案300万数码相机源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
                              return;
                         }
                         else
                         {
                              pressing_key = K_ReleaseKey;
                              old_key = key;
                              return;
                         }
                    }

                    break;

               default:
                    pressing_key = K_ReleaseKey;
                    old_key = key;
                    break;
          }
     }

     L2_SetGPIOBit(19,0);
     L2_SetGPIOBit(20,0);
     L2_SetGPIOBit(21,0);

     #else

     if ((pressing_key == K_ReleaseKey) || (pressing_key == 0x04))
     {
          Key_Column1 = 1;    //Scan Display,Menu,Snap1,Snap2
          Key_Column2 = 0;
          //Joe@2003.3.7 13:42 add begin
          Key_Column3 = 0;
          //Joe@2003.3.7 13:42 add end

          L2_GetGPIOByte(25,&temp_key);

          //DbgPrint("Read key value = %bx\n",temp_key);

          temp_key &= 0x1e;

          if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))   //Check Display Key
          {
               DelayBase(100);
               L2_GetGPIOBit(25,&temp_key);

               if (temp_key == 0x02)
               {
                        pressing_key = 0x01;
                        return;
                        //DbgPrint("Display Key pushed!\n");
               }
          }
          else
          {
               if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))   //Check Menu Key
               {
                    DelayBase(100);
                    L2_GetGPIOBit(26,&temp_key);

                    if (temp_key == 0x04)
                    {
                                pressing_key = 0x02;
                                return;
                                //DbgPrint("Menu Key pushed!\n");
                    }
               }
               else
               {
                    if ((temp_key == 0x08) && (pressing_key == K_ReleaseKey))    //Check Snap1 Key
                    {
                         DelayBase(20);
                         L2_GetGPIOBit(27,&temp_key);

                         if (temp_key == 0x08)
                         {
                                        pressing_key = 0x04;
                                        return;
                                        //DbgPrint("Snap1 Key pushed!\n");
                         }
                    }
                    else
                    {
                    	 //Joe@2003.3.7 12:35 modify begin
                         //if ((temp_key == 0x18) && (pressing_key == K_Snap1Key)) //Check Snap2 Key
                         if ( ((temp_key == 0x18) && (pressing_key == K_Snap1Key)) ||
                              ((temp_key == 0x10) && (pressing_key == K_ReleaseKey)) )
                         //Joe@2003.3.7 12:35 modify end
                         {
                              DelayBase(100);
                              L2_GetGPIOBit(28,&temp_key);

                              if (temp_key == 0x10)
                              {
                                        pressing_key = 0x08;
                                        return;
                                        //DbgPrint("Snap2 Key pushed!\n");
                              }
                         }
                    }
               }
          }

          Key_Column1 = 0;
          Key_Column2 = 1;    //Scan Left,Up,Right,Down
          //Joe@2003.3.7 13:42 add begin
          Key_Column3 = 0;
          //Joe@2003.3.7 13:42 add end

          L2_GetGPIOByte(25,&temp_key);

          temp_key &= 0x1e;

          if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))   //Check Left Key
          {
               DelayBase(100);
               L2_GetGPIOBit(25,&temp_key);

               if (temp_key == 0x02)
               {
                        pressing_key = 0x10;
                        return;
                        //DbgPrint("Left Key pushed!\n");
               }
          }
          else
          {
               if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))    //Check Up Key
               {
                    DelayBase(100);
                    L2_GetGPIOBit(26,&temp_key);

                    if (temp_key == 0x04)
                    {
                                pressing_key = 0x20;
                                return;
                                //DbgPrint("UP Key pushed!\n");
                    }
               }
               else
               {
                    if ((temp_key == 0x08) && (pressing_key == K_ReleaseKey))    //Check Right Key
                    {
                         DelayBase(100);
                         L2_GetGPIOBit(27,&temp_key);

                         if (temp_key == 0x08)
                         {
                                pressing_key = 0x40;
                                return;
                                //DbgPrint("Right Key pushed!\n");
                         }
                    }
                    else
                    {
                         if ((temp_key == 0x10) && (pressing_key == K_ReleaseKey))    //Check Down Key
                         {
                              DelayBase(100);
                              L2_GetGPIOBit(28,&temp_key);

                              if (temp_key == 0x10)
                              {
                                        pressing_key = 0x80;
                                        return;
                                        //DbgPrint("Down Key pushed!\n");
                              }
                         }
                    }
               }
          }

	  //Joe@2003.3.5 11:20 add begin
          Key_Column1 = 0;
          Key_Column2 = 0;    //Scan Preview/Playback key, Flash key
          //Joe@2003.3.7 13:41 add begin
          Key_Column3 = 1;
          //Joe@2003.3.7 13:41 add end

          L2_GetGPIOByte(25,&temp_key);

          temp_key &= 0x1e;

          if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))   //Check Preview/Playback Key
          {
               if (key != temp_key)
               {
                    key = temp_key;
                    return;
               }
               else
               {
                    pressing_key = K_ModeKey;
                    old_key = key;
                    return;
               }
          }
          else
          {
               if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))    //Check Flash Key
               {
                    if (key != temp_key)
                    {
                         key = temp_key;
                         return;
                    }
                    else
                    {
                         pressing_key = K_FlashKey;
                         old_key = key;
                         return;
                    }
               }
          }
	//Joe@2003.3.5 11:20 add end
     }

     //Check if all 8 keys are released
     if (pressing_key > 0x00)
     {
          if (pressing_key <= 0x08)     //Check Display,Menu,Snap1,Snap2
          {
               Key_Column1 = 1;
               Key_Column2 = 0;
               //Joe@2003.3.7 13:43 add begin
               Key_Column3 = 0;
               //Joe@2003.3.7 13:43 add end

               L2_GetGPIOByte(25,&temp_key);
               temp_key &= 0x1e;

               if (temp_key == 0x00)
               {
                    DelayBase(100);
                    L2_GetGPIOByte(25,&temp_key);
                    temp_key &= 0x1e;

                    if (temp_key == 0x00)
                    {
                                pressing_key = 0x00;
                                return;
                                //DbgPrint("All Keys Released!\n");
                    }
               }
          }
          //Joe@2003.3.5 12:45 modify begin
          //else //pressing_key >= 0x10,Check Left,Up,Right,Down
          else if (pressing_key <= 0x80)	//Check Left,Up,Right,Down
          //Joe@2003.3.5 12:45 modify end
          {
               Key_Column1 = 0;
               Key_Column2 = 1;
               //Joe@2003.3.7 13:43 add begin
               Key_Column3 = 0;
               //Joe@2003.3.7 13:43 add end

               L2_GetGPIOByte(25,&temp_key);
               temp_key &= 0x1e;

               if (temp_key == 0x00)
               {
                    DelayBase(100);
                    L2_GetGPIOByte(25,&temp_key);
                    temp_key &= 0x1e;

                    if (temp_key == 0x00)
                    {
                                pressing_key = 0x00;
                                return;
                                //DbgPrint("All Keys Released!\n");
                                //G_IsKeyRelease = 0; //yichang
                    }
               }
          }

          //Joe@2003.3.5 12:46 add begin
          else if (pressing_key > 0x80)	//Check Preview/Playback,Flash
          {
               Key_Column1 = 0;
               Key_Column2 = 0;
               //Joe@2003.3.7 13:42 add begin
               Key_Column3 = 1;
               //Joe@2003.3.7 13:42 add end

               L2_GetGPIOByte(25,&temp_key);
               temp_key &= 0x1e;

               if (temp_key == 0x00)
               {
                    if (key != temp_key)
                    {
                         key = temp_key;
                         return;
                    }
                    else
                    {
                         pressing_key = K_ReleaseKey;
                         old_key = key;
                         return;
                    }
               }
          }
          //Joe@2003.3.5 12:46 add end
     }
     #endif
}

//=============================================================================
//UI_Get_Hardware_Keypad2
//=============================================================================
UCHAR UI_Get_Hardware_Keypad2(void) USING_0
{
     UCHAR temp_key;
     UCHAR keymode = 0;

     L2_GetGPIOBit(29,&temp_key);

     if (temp_key == 0x20)
     {
          DelayBase(100);
          L2_GetGPIOBit(29,&temp_key);

          if (temp_key == 0x20)
          {
               keymode |= 0x01;
          }
     }

     L2_GetGPIOBit(30,&temp_key);

     if (temp_key == 0x40)
     {
          DelayBase(100);
          L2_GetGPIOBit(30,&temp_key);

          if (temp_key == 0x40)
          {
               keymode |= 0x02;
          }
     }

     L2_GetGPIOBit(38,&temp_key);

     if (temp_key == 0x40)
     {
          DelayBase(100);
          L2_GetGPIOBit(38,&temp_key);

          if (temp_key == 0x40)
          {
               keymode |= 0x04;
          }
     }

     L2_GetGPIOBit(39,&temp_key);

     if (temp_key == 0x80)
     {
          DelayBase(100);
          L2_GetGPIOBit(39,&temp_key);

          if (temp_key == 0x80)
          {
               keymode |= 0x08;
          }
     }

     switch (keymode)
     {
          case 0x00:
               return K_RotarySwitchMode0;      //mode 0

          case 0x01:
               return K_RotarySwitchMode1;      //mode 1

          case 0x02:
               return K_RotarySwitchMode2;      //mode 2

          case 0x04:
               return K_RotarySwitchMode3;      //mode 3

          case 0x08:
               return K_RotarySwitchMode4;      //mode 4

          case 0x06:
               return K_RotarySwitchMode5;      //mode 5

          case 0x09:
               return K_RotarySwitchMode6;      //mode 6

          case 0x0c:
               return K_RotarySwitchMode7;      //mode 7

          default:
               return K_RotateSwitchUnknownMode;   //unknown mode
     }
}

//=============================================================================
//DelayBase(unsigned char times)
//=============================================================================
void DelayBase(unsigned char times) USING_0
{
        //unsigned char  i,j;

        times = times + 1 ;

        while(times > 0)
        {
                //for(i = 0 ; i < 100 ; i ++)
                        //for(j = 0 ; j < 5 ; j ++);

                times--;
        }
}
//-------------------Davis:patch4.0.0.1_2005/Jun/15 begin
UCHAR UI_Get_Foucs (void)
{
	UCHAR isDetHigh;
	L2_ConfigGPIOBit(31,0);
	L2_GetGPIOBit( 31,&(isDetHigh) );
	return isDetHigh > 0 ? 1 : 0;
}
UCHAR UI_DispFoucsIcon(void) USING_0
{
	if(UI_Get_Foucs()){
		L2_SetFOSDIndex(0,5,0x2a);
		L2_SetFOSDAttr(0,5, UI_MENU_DEHIGHLIGHT_COLOR);
		L2_SetFOSDIndex(0,6,0x2b);
		L2_SetFOSDAttr(0,6, UI_MENU_DEHIGHLIGHT_COLOR);
	}else{
		UI_PrintOSDString("  ",5, 0, UI_MENU_DEHIGHLIGHT_COLOR);
		L2_SetFOSDIndex(0,5,0x5b);
		L2_SetFOSDAttr(0,5, UI_MENU_DEHIGHLIGHT_COLOR);
	}
	return 0;
}
UCHAR UI_Get_FoucsSwitch (void)
{
	static UCHAR focus_status=2;
	UCHAR focusTmp=UI_Get_Foucs();
	if(focusTmp != focus_status){
		focus_status=focusTmp;
		UI_DispFoucsIcon();
	}
	return 0;
}
//-------------------Davis:patch4.0.0.1_2005/Jun/15 end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -