spv518_key.c
来自「TFT显示的源码,附了使用说明书 要下载的速度了」· C语言 代码 · 共 132 行
C
132 行
#include "spv518.h"
#define SPV518_KEY_SCAN_CHANNEL0 0
#define SPV518_KEY_SCAN_CHANNEL1 1
#define USE_CHANNEL0
#define USE_CHANNEL1
#ifdef USE_CHANNEL0
#define CHANNEL0_USE_KEY_NUMBER 5
#endif
#ifdef USE_CHANNEL1
#define CHANNEL1_USE_KEY_NUMBER 5
#endif
extern const IRFUNC irc_Tcon_func_table[];
enum
{
IRC_TCON_BRIGHTNESS,
IRC_TCON_CONTRAST,
IRC_TCON_HUE,
IRC_TCON_SATURATION,
IRC_TCON_SHARPNESS,
IRC_TCON_SHARPNESS1,
IRC_TCON_SHARPNESS2,
IRC_TCON_SHARPNESS3,
IRC_TCON_SHARPNESS4,
IRC_TCON_SHARPNESS5,
IRC_TCON_NULL,
};
const BYTE Tcon_keycode0[15]=
{
IRC_TCON_BRIGHTNESS,IRC_TCON_CONTRAST,
IRC_TCON_HUE,IRC_TCON_SATURATION,
IRC_TCON_SHARPNESS,IRC_TCON_SHARPNESS1,
IRC_TCON_SHARPNESS2,IRC_TCON_SHARPNESS3,
IRC_TCON_SHARPNESS4,IRC_TCON_SHARPNESS5,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,
};
const BYTE Tcon_keycode1[15]=
{
IRC_TCON_BRIGHTNESS,IRC_TCON_NULL,
IRC_TCON_HUE,IRC_TCON_SATURATION,
IRC_TCON_SHARPNESS,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_BRIGHTNESS,IRC_TCON_CONTRAST,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,
};
const BYTE Tcon_keycode2[15]=
{
IRC_TCON_BRIGHTNESS,IRC_TCON_CONTRAST,
IRC_TCON_HUE,IRC_TCON_SATURATION,
IRC_TCON_SHARPNESS,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,
};
const BYTE Tcon_keycode3[15]=
{
IRC_TCON_BRIGHTNESS,IRC_TCON_CONTRAST,
IRC_TCON_HUE,IRC_TCON_SATURATION,
IRC_TCON_SHARPNESS,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,IRC_TCON_NULL,
IRC_TCON_NULL,
};
void tcon_key_parse(BYTE key_value)
{
printf_w("\ntcon_key_parse in key_value:%d",key_value);
switch(tcon_ui_state)
{
case TCON_UI_FIRST_STATE:
irc_Tcon_func_table[Tcon_keycode0[key_value]]();
break;
case TCON_UI_SECOND_STATE:
irc_Tcon_func_table[Tcon_keycode1[key_value]]();
break;
case TCON_UI_THIRD_STATE:
irc_Tcon_func_table[Tcon_keycode2[key_value]]();
break;
case TCON_UI_FOURTH_STATE:
irc_Tcon_func_table[Tcon_keycode3[key_value]]();
break;
}
}
BYTE key_virtual_cnt;
void polling_spv518_key(void)
{
BYTE key_value,keyval,key1valoffset=0;
#ifdef USE_CHANNEL0
key1valoffset = CHANNEL0_USE_KEY_NUMBER;
#endif
#ifdef USE_CHANNEL0
key_value=SAR(SPV518_KEY_SCAN_CHANNEL0);
if((key_value>((0xff/CHANNEL0_USE_KEY_NUMBER)/2))&&(!key_virtual_cnt))
{
keyval=((key_value-(0xff/CHANNEL0_USE_KEY_NUMBER)/2)/(0xff/CHANNEL0_USE_KEY_NUMBER));
printf_w("\nwwkeyval0:%d",keyval);
tcon_key_parse(keyval);
//irc_Tcon_func_table[(BYTE)keyval]();
key_virtual_cnt = 3;
}
#endif
#ifdef USE_CHANNEL1
key_value=SAR(SPV518_KEY_SCAN_CHANNEL1);
if((key_value>((0xff/CHANNEL1_USE_KEY_NUMBER)/2))&&(!key_virtual_cnt))
{
keyval=((key_value-(0xff/CHANNEL1_USE_KEY_NUMBER)/2)/(0xff/CHANNEL1_USE_KEY_NUMBER));
printf_w("\nwwkeyval1:%d",keyval);
tcon_key_parse(keyval+key1valoffset);
//irc_Tcon_func_table[(BYTE)(keyval+key1valoffset)]();
key_virtual_cnt = 3;
}
#endif
key_value=SAR(SPV518_KEY_SCAN_CHANNEL1);
if(key_virtual_cnt)
key_virtual_cnt--;
printf_w("\nqqspv518_key_value:%d;",key_value);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?