📄 timer.c
字号:
{
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 + -