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

📄 kp_userdef.c.svn-base

📁 一款蓝牙芯片的驱动和应用代码
💻 SVN-BASE
字号:
#define _KP_USERDEF_C

#include "typedef.h"
#include "SysConfig.h"
#include "kp.h"
#include "ir.h"
//#include "ir522.h"
#include "os.h"
#include "bios.h"


#ifdef CHIP_TYPE_MP321D
    //#define _KEYPAD_M1D             // for DEMOBOARD_M1D Keypad
    #define _KEYPAD_M3              // for BBE
#else
    #ifdef BOARD_MP322_EVB
        #define _KEYPAD_MP522_EVB                // for MP522_EVB Keypad
    #else
        //#define MP522_DTB_VC_KEYPAD            // for MP522_DTB_VC Keypad            
        #ifdef MP522_DTB_VC_KEYPAD
            #define _KEYPAD_MP522_DTB_VC
    #else    
        #define _KEYPAD_MP522_DTB_VB             // for MP522_DTB_VB Keypad
        #endif
    #endif
#endif

#ifdef _KEYPAD_MP522_EVB

#define KEY_IN_IO_COUNT     4
#define KEY_OUT_IO_COUNT    4
U08 *u08KeyInIo[KEY_IN_IO_COUNT] ={"HDATA4", "HDATA5", "HDATA6","HDATA7"};
U08 *u08KeyOutIo[KEY_OUT_IO_COUNT] = {"HDATA0", "HDATA1", "HDATA2", "HDATA3"};

#define KEY_TRANSFORM_COUNT     17

ST_KEY_TRANSFORM  keyTransformTab[] = {
    {E_KEY_STATE_PRESS,   0x00000001,     0x00000000, 5},
    {E_KEY_STATE_PRESS,   0x00000002,     0x00000000, 4},
    {E_KEY_STATE_PRESS,   0x00000004,     0x00000000, 6},
    {E_KEY_STATE_PRESS,   0x00000008,     0x00000000, 13},
    {E_KEY_STATE_PRESS,   0x00000010,     0x00000000, 2},
    {E_KEY_STATE_PRESS,   0x00000020,     0x00000000, 1},
    {E_KEY_STATE_PRESS,   0x00000040,     0x00000000, 3},
    {E_KEY_STATE_PRESS,   0x00000080,     0x00000000, 14},
    {E_KEY_STATE_PRESS,   0x00000100,     0x00000000, 11},
    {E_KEY_STATE_PRESS,   0x00000200,     0x00000000, 10},
    {E_KEY_STATE_PRESS,   0x00000400,     0x00000000, 12},
    {E_KEY_STATE_PRESS,   0x00000800,     0x00000000, 15},
    {E_KEY_STATE_PRESS,   0x00001000,     0x00000000, 8},
    {E_KEY_STATE_PRESS,   0x00002000,     0x00000000, 7},
    {E_KEY_STATE_PRESS,   0x00004000,     0x00000000, 9},
    {E_KEY_STATE_PRESS,   0x00008000,     0x00000000, 16},
    {E_KEY_STATE_HOLD ,   0x00000002,     0x00000000,  2},
};

#endif

#ifdef _KEYPAD_MP522_DTB_VB

#define KEY_IN_IO_COUNT     4
#define KEY_OUT_IO_COUNT    4
U08 *u08KeyInIo[KEY_IN_IO_COUNT] ={"HDATA0", "HDATA1", "HDATA2", "HDATA3"};
U08 *u08KeyOutIo[KEY_OUT_IO_COUNT] = {"HDATA4", "HDATA5", "HDATA6","HDATA7"};

#define KEY_TRANSFORM_COUNT     17

ST_KEY_TRANSFORM  keyTransformTab[] = {
    {E_KEY_STATE_PRESS,   0x00000001,     0x00000000, 1},
    {E_KEY_STATE_PRESS,   0x00000002,     0x00000000, 2},
    {E_KEY_STATE_PRESS,   0x00000004,     0x00000000, 3},
    {E_KEY_STATE_PRESS,   0x00000008,     0x00000000, 13},
    {E_KEY_STATE_PRESS,   0x00000010,     0x00000000, 4},
    {E_KEY_STATE_PRESS,   0x00000020,     0x00000000, 5},
    {E_KEY_STATE_PRESS,   0x00000040,     0x00000000, 6},
    {E_KEY_STATE_PRESS,   0x00000080,     0x00000000, 14},
    {E_KEY_STATE_PRESS,   0x00000100,     0x00000000, 7},
    {E_KEY_STATE_PRESS,   0x00000200,     0x00000000, 8},
    {E_KEY_STATE_PRESS,   0x00000400,     0x00000000, 9},
    {E_KEY_STATE_PRESS,   0x00000800,     0x00000000, 15},
    {E_KEY_STATE_PRESS,   0x00001000,     0x00000000, 10},
    {E_KEY_STATE_PRESS,   0x00002000,     0x00000000, 11},
    {E_KEY_STATE_PRESS,   0x00004000,     0x00000000, 12},
    {E_KEY_STATE_PRESS,   0x00008000,     0x00000000, 16},
    {E_KEY_STATE_HOLD ,   0x00000002,     0x00000000,  2},
};

#endif

#ifdef _KEYPAD_MP522_DTB_VC

#define KEY_IN_IO_COUNT     4
#define KEY_OUT_IO_COUNT    3
U08 *u08KeyInIo[KEY_IN_IO_COUNT] ={"HDATA0", "HDATA1", "HDATA2", "HDATA3"};
U08 *u08KeyOutIo[KEY_OUT_IO_COUNT] = {"HDATA4", "HDATA5", "HDATA6"};

#define KEY_TRANSFORM_COUNT     12

ST_KEY_TRANSFORM  keyTransformTab[] = {
    {E_KEY_STATE_PRESS,   0x00000001,     0x00000000, 1},
    {E_KEY_STATE_PRESS,   0x00000002,     0x00000000, 4},
    {E_KEY_STATE_PRESS,   0x00000004,     0x00000000, 7},
    {E_KEY_STATE_PRESS,   0x00000008,     0x00000000, 10},
    {E_KEY_STATE_PRESS,   0x00000010,     0x00000000, 2},
    {E_KEY_STATE_PRESS,   0x00000020,     0x00000000, 5},
    {E_KEY_STATE_PRESS,   0x00000040,     0x00000000, 8},
    {E_KEY_STATE_PRESS,   0x00000080,     0x00000000, 11},
    {E_KEY_STATE_PRESS,   0x00000100,     0x00000000, 3},
    {E_KEY_STATE_PRESS,   0x00000200,     0x00000000, 6},
    {E_KEY_STATE_PRESS,   0x00000400,     0x00000000, 9},
    {E_KEY_STATE_PRESS,   0x00000800,     0x00000000, 12},
    {E_KEY_STATE_PRESS,   0x00001000,     0x00000000, 13},
    {E_KEY_STATE_PRESS,   0x00002000,     0x00000000, 14},
    {E_KEY_STATE_PRESS,   0x00004000,     0x00000000, 15},
    {E_KEY_STATE_PRESS,   0x00008000,     0x00000000, 16},
    {E_KEY_STATE_HOLD ,   0x00000002,     0x00000000,  2},
};

#endif

#ifdef _KEYPAD_M1D

#define KEY_IN_IO_COUNT     4
#define KEY_OUT_IO_COUNT    4
U08 *u08KeyInIo[KEY_IN_IO_COUNT] ={"HDATA8", "HDATA9", "HDATA10", "HDATA11"};
U08 *u08KeyOutIo[KEY_OUT_IO_COUNT] = {"HDATA12", "HDATA13", "HDATA14","HDATA15"};

#define KEY_TRANSFORM_COUNT     17

ST_KEY_TRANSFORM  keyTransformTab[] = {
    {E_KEY_STATE_PRESS,   0x00000001,     0x00000000, 1},
    {E_KEY_STATE_PRESS,   0x00000002,     0x00000000, 2},
    {E_KEY_STATE_PRESS,   0x00000004,     0x00000000, 3},
    {E_KEY_STATE_PRESS,   0x00000008,     0x00000000, 13},
    {E_KEY_STATE_PRESS,   0x00000010,     0x00000000, 4},
    {E_KEY_STATE_PRESS,   0x00000020,     0x00000000, 5},
    {E_KEY_STATE_PRESS,   0x00000040,     0x00000000, 6},
    {E_KEY_STATE_PRESS,   0x00000080,     0x00000000, 14},
    {E_KEY_STATE_PRESS,   0x00000100,     0x00000000, 7},
    {E_KEY_STATE_PRESS,   0x00000200,     0x00000000, 8},
    {E_KEY_STATE_PRESS,   0x00000400,     0x00000000, 9},
    {E_KEY_STATE_PRESS,   0x00000800,     0x00000000, 15},
    {E_KEY_STATE_PRESS,   0x00001000,     0x00000000, 10},
    {E_KEY_STATE_PRESS,   0x00002000,     0x00000000, 11},
    {E_KEY_STATE_PRESS,   0x00004000,     0x00000000, 12},
    {E_KEY_STATE_PRESS,   0x00008000,     0x00000000, 16},
    {E_KEY_STATE_HOLD ,   0x00000002,     0x00000000,  2},
};


#endif

#ifdef _KEYPAD_M3

#define KEY_IN_IO_COUNT     4
#define KEY_OUT_IO_COUNT    3
U08 *u08KeyInIo[KEY_IN_IO_COUNT] ={"HDATA8", "HDATA9", "HDATA10", "HDATA11"};
U08 *u08KeyOutIo[KEY_OUT_IO_COUNT] = {"HDATA12", "HDATA13", "HDATA14"};

#define KEY_TRANSFORM_COUNT     12

ST_KEY_TRANSFORM  keyTransformTab[] = {
    //Key State         Scan code mask low / high   Key Code
    {E_KEY_STATE_PRESS,   0x00000001,     0x00000000, 3},
    {E_KEY_STATE_PRESS,   0x00000002,     0x00000000, 6},
    {E_KEY_STATE_PRESS,   0x00000004,     0x00000000, 9},
    {E_KEY_STATE_PRESS,   0x00000008,     0x00000000, 12},
    {E_KEY_STATE_PRESS,   0x00000010,     0x00000000, 2},
    {E_KEY_STATE_PRESS,   0x00000020,     0x00000000, 5},
    {E_KEY_STATE_PRESS,   0x00000040,     0x00000000, 8},
    {E_KEY_STATE_PRESS,   0x00000080,     0x00000000, 11},
    {E_KEY_STATE_PRESS,   0x00000100,     0x00000000, 1},
    {E_KEY_STATE_PRESS,   0x00000200,     0x00000000, 4},
    {E_KEY_STATE_PRESS,   0x00000400,     0x00000000, 7},
    {E_KEY_STATE_PRESS,   0x00000800,     0x00000000, 10},
};


#endif
/*
U08 IRKeyTable[][2]={
                        {0x41,1},
                        {0x4d,2},
                        {0x45,3},
                        {0x42,4},
                        {0x4e,5},
                        {0x46,6},
                        {0x43,7},
                        {0x4f,8},
                        {0x47,9},
                        {0x08,0}
                    };
*/
U08 IRKeyTable[][2]={
                        {0x15,1},
                        {0xe5,2},
                        {0xc5,3},
                        {0x85,4},
                        {0xdd,5},
                        {0x07,6},
                        {0xcd,7},
                        {0x9f,8},
                        {0xfd,9},
                        {0x47,10},
                        {0xed,11},
                        {0x0f,12},
                        {0xf5,13},
                        {0xcf,14},
                        {0xbf,15},
                        {0x8f,16}
                    };

U32 mpx_GetKeyTransformTabAddr(void)
{
    return (U32)keyTransformTab;
    //return (U32)KeyTable;

}

U32 mpx_GetIRKeyTableAddr(void)
{
    return (U32)IRKeyTable;
}

U08 mpx_GetIRKeyTableRowNum(void)
{
    return (sizeof(IRKeyTable) / sizeof(U08) / 2);
}

void KeypadInit(U08 msgId);
void KeypadInit(U08 msgId)
{
    mpx_KeypadInit(u08KeyInIo, KEY_IN_IO_COUNT, u08KeyOutIo, KEY_OUT_IO_COUNT);
    mpx_SetKeyTransformTab((U32)keyTransformTab, KEY_TRANSFORM_COUNT);
    mpx_SetKeypadMsgID(msgId);
    mpx_SetKeyRepeatParam(100,2000,500);
    mpx_KeyScanProcStart();
}


//#define CUSTOMERCODE    0x403f
//#define CUSTOMERCODE    0x61d6  //Magic Pixel Inc.
//void IrInit(U08 msgId);
//void IrInit(U08 msgId)
//{
//   mpx_IrInit(CUSTOMERCODE, msgId);
//}

⌨️ 快捷键说明

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