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

📄 timer.c

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

                    break;
*/
               case K_DisplayKey:
                    TIMER0_SetGPIOBit(19,0);
                    TIMER0_SetGPIOBit(20,0);
                    TIMER0_SetGPIOBit(21,1);
                    TIMER0_GetGPIOBit(22,&temp_key);

                    if (temp_key == 0)
                    {
                         if (key != temp_key)
                         {
                              key = temp_key;
                              return;
                         }
                         else
                         {
                              pressing_key = K_ReleaseKey;
                              old_key = key;
                              return;
                         }
                    }

                    break;

               case K_MenuKey:
                    TIMER0_SetGPIOBit(19,0);
                    TIMER0_SetGPIOBit(20,0);
                    TIMER0_SetGPIOBit(21,1);
                    TIMER0_GetGPIOBit(23,&temp_key);

                    if (temp_key == 0)
                    {
                         if (key != temp_key)
                         {
                              key = temp_key;
                              return;
                         }
                         else
                         {
                              pressing_key = K_ReleaseKey;
                              old_key = key;
                              return;
                         }
                    }

                    break;

               case K_SelectKey:
                    TIMER0_SetGPIOBit(19,0);
                    TIMER0_SetGPIOBit(20,0);
                    TIMER0_SetGPIOBit(21,1);
                    TIMER0_GetGPIOBit(24,&temp_key);

                    if (temp_key == 0)
                    {
                         if (key != temp_key)
                         {
                              key = temp_key;
                              return;
                         }
                         else
                         {
                              pressing_key = K_ReleaseKey;
                              old_key = key;
                              return;
                         }
                    }

                    break;

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

     TIMER0_SetGPIOBit(19,0);
     TIMER0_SetGPIOBit(20,0);
     TIMER0_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:41 add begin
          Key_Column3 = 0;
          //Joe@2003.3.7 13:41 add end

          TIMER0_GetGPIOByte(25,&temp_key);

          temp_key &= 0x1e;

          if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))   //Check Display Key
          {
               if (key != temp_key)
               {
                    key = temp_key;
                    return;
               }
               else
               {
                    pressing_key = K_DisplayKey;
                    old_key = key;
                    return;
               }
          }
          else
          {
               if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))   //Check Menu Key
               {
                    if (key != temp_key)
                    {
                         key = temp_key;
                         return;
                    }
                    else
                    {
                         pressing_key = K_MenuKey;
                         old_key = key;
                         return;
                    }
               }
               else
               {
                    if ((temp_key == 0x08) && (pressing_key == K_ReleaseKey))    //Check Snap1 Key
                    {
                         if (key != temp_key)
                         {
                              key = temp_key;
                              return;
                         }
                         else
                         {
                              pressing_key = K_Snap1Key;
                              old_key = key;
                              return;
                         }
                    }
                    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
                         {
                              if (key != temp_key)
                              {
                                   key = temp_key;
                                   return;
                              }
                              else
                              {
                                   pressing_key = K_Snap2Key;
                                   old_key = key;
                                   return;
                              }
                         }
                    }
               }
          }

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

          TIMER0_GetGPIOByte(25,&temp_key);

          temp_key &= 0x1e;

          if ((temp_key == 0x02) && (pressing_key == K_ReleaseKey))   //Check Left Key
          {
               if (key != temp_key)
               {
                    key = temp_key;
                    return;
               }
               else
               {
                    pressing_key = K_LeftKey;
                    old_key = key;
                    return;
               }
          }
          else
          {
               if ((temp_key == 0x04) && (pressing_key == K_ReleaseKey))    //Check Up Key
               {
                    if (key != temp_key)
                    {
                         key = temp_key;
                         return;
                    }
                    else
                    {
                         pressing_key = K_UpKey;
                         old_key = key;
                         return;
                    }
               }
               else
               {
                    if ((temp_key == 0x08) && (pressing_key == K_ReleaseKey))    //Check Right Key
                    {
                         if (key != temp_key)
                         {
                              key = temp_key;
                              return;
                         }
                         else
                         {
                              pressing_key = K_RightKey;
                              old_key = key;
                              return;
                         }
                    }
                    else
                    {
                         if ((temp_key == 0x10) && (pressing_key == K_ReleaseKey))    //Check Down Key
                         {
                              if (key != temp_key)
                              {
                                   key = temp_key;
                                   return;
                              }
                              else
                              {
                                   pressing_key = K_DownKey;
                                   old_key = key;
                                   return;
                              }
                         }
                    }
               }
          }

	//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

          TIMER0_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 > K_ReleaseKey)
     {
          if (pressing_key <= 0x08)     //Check Display,Menu,Snap1,Snap2
          {
               Key_Column1 = 1;
               Key_Column2 = 0;
               //Joe@2003.3.7 13:42 add begin
               Key_Column3 = 0;
               //Joe@2003.3.7 13:42 add end

               TIMER0_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: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:42 add begin
               Key_Column3 = 0;
               //Joe@2003.3.7 13:42 add end

               TIMER0_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 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

               TIMER0_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
}

//=============================================================================
//TIMER0_Get_Hardware_Keypad2
//=============================================================================
//ada@0415 test ui
UCHAR TIMER0_Get_Hardware_Keypad2(void) USING_2
{
     UCHAR temp_key;
     UCHAR keymode = 0;

     //Joe@2003.2.28 10:42 mask begin
     /*
     TIMER0_GetGPIOBit(29,&temp_key);

     if (keymode1 != temp_key)

⌨️ 快捷键说明

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