stm8l10x_tsl_ct_acquisition.c

来自「STM8s」· C语言 代码 · 共 2,078 行 · 第 1/4 页

C
2,078
字号
#define P2_PORT        (GPIOD)
#define P2_IO_MASK_1   (0x01) /*PD0*/
#define P2_IO_MASK_2   (0x04) /*PD2*/
#if (SCKEY_P2_CH == CH3)
/*single channel key*/
#if ((SCKEY_P2_A == GROUP1) && (SCKEY_P2_B == GROUP2)) || ((SCKEY_P2_A == GROUP2) && (SCKEY_P2_B == GROUP1))
#define SCKEY_P2_COMP_MASK  (0x44)
#define SCKEY_P2_IO_MASK    (0x05) /*PD2 and PD0*/
#define SCKEY_P2_STATE_MASK (0x03)
#elif (SCKEY_P2_A == GROUP1) || (SCKEY_P2_B == GROUP1)
#define SCKEY_P2_COMP_MASK  (0x04)
#define SCKEY_P2_IO_MASK    (0x01) /*PD0*/
#define SCKEY_P2_STATE_MASK (0x01)
#elif (SCKEY_P2_A == GROUP2) || (SCKEY_P2_B == GROUP2)
#define SCKEY_P2_COMP_MASK  (0x40) /*PD2*/
#define SCKEY_P2_IO_MASK    (0x04)
#define SCKEY_P2_STATE_MASK (0x02)
#else
#define SCKEY_P2_COMP_MASK  (0x00)
#define SCKEY_P2_IO_MASK    (0x00)
#define SCKEY_P2_STATE_MASK (0x00)
#endif
#else
#define SCKEY_P2_COMP_MASK  (0x00)
#define SCKEY_P2_IO_MASK    (0x00)
#define SCKEY_P2_STATE_MASK (0x00)
#endif // end of #if (SCKEY_P2_CH == CH3)
/*Multi channel key*/
#if MKEY_CH3_MASK == (GROUP1|GROUP2)
#define MCKEY_P2_COMP_MASK  (0x44)
#define MCKEY_P2_IO_MASK    (0x05) /*PD2 and PD0*/
#define MCKEY_P2_STATE_MASK (0x03)
#elif MKEY_CH3_MASK == GROUP1
#define MCKEY_P2_COMP_MASK  (0x04)
#define MCKEY_P2_IO_MASK    (0x01) /*PD0*/
#define MCKEY_P2_STATE_MASK (0x01)
#elif MKEY_CH3_MASK == GROUP2
#define MCKEY_P2_COMP_MASK  (0x40) /*PD2*/
#define MCKEY_P2_IO_MASK    (0x04)
#define MCKEY_P2_STATE_MASK (0x02)
#else
#define MCKEY_P2_COMP_MASK  (0x00)
#define MCKEY_P2_IO_MASK    (0x00)
#define MCKEY_P2_STATE_MASK (0x00)
#endif

#if ACTIVE_SHIELD_GROUP == GROUP1
#define ASHLD_P2_COMP_MASK  (0x04)
#define ASHLD_P2_IO_MASK    (0x01) /*PD0*/
#define ASHLD_P2_STATE_MASK (0x01)
#elif ACTIVE_SHIELD_GROUP == GROUP2
#define ASHLD_P2_COMP_MASK  (0x40)
#define ASHLD_P2_IO_MASK    (0x04) /*PD2*/
#define ASHLD_P2_STATE_MASK (0x02)
#else
#define ASHLD_P2_COMP_MASK  (0x00)
#define ASHLD_P2_IO_MASK    (0x00)
#define ASHLD_P2_STATE_MASK (0x00)
#endif

#define P2_COMP_MASK  (SCKEY_P2_COMP_MASK | MCKEY_P2_COMP_MASK | ASHLD_P2_COMP_MASK)
#define P2_IO_MASK    (SCKEY_P2_IO_MASK | MCKEY_P2_IO_MASK | ASHLD_P2_IO_MASK)
#define P2_STATE_MASK (SCKEY_P2_STATE_MASK | MCKEY_P2_STATE_MASK | ASHLD_P2_STATE_MASK)

#elif ((SCKEY_P2_CH == CH4) || MKEY_CH4_MASK)
#define P2_PORT              (GPIOD)
#define P2_IO_MASK_1         (0x02) /*PD1*/
#define P2_IO_MASK_2         (0x08) /*PD3*/
#if (SCKEY_P2_CH == CH4)
/*Single channel key*/
#if ((SCKEY_P2_A == GROUP1) && (SCKEY_P2_B == GROUP2)) || ((SCKEY_P2_A == GROUP2) && (SCKEY_P2_B == GROUP1))
#define SCKEY_P2_COMP_MASK  (0x88)
#define SCKEY_P2_IO_MASK    (0x0A) /*PD3 and PD1*/
#define SCKEY_P2_STATE_MASK (0x03)
#elif (SCKEY_P2_A == GROUP1) || (SCKEY_P2_B == GROUP1)
#define SCKEY_P2_COMP_MASK  (0x08)
#define SCKEY_P2_IO_MASK    (0x02) /*PD1*/
#define SCKEY_P2_STATE_MASK (0x01)
#elif (SCKEY_P2_A == GROUP2) || (SCKEY_P2_B == GROUP2)
#define SCKEY_P2_COMP_MASK  (0x80) /*PD3*/
#define SCKEY_P2_IO_MASK    (0x08)
#define SCKEY_P2_STATE_MASK (0x02)
#else
#define SCKEY_P2_COMP_MASK  (0x00)
#define SCKEY_P2_IO_MASK    (0x00)
#define SCKEY_P2_STATE_MASK (0x00)
#endif
#else
#define SCKEY_P2_COMP_MASK  (0x00)
#define SCKEY_P2_IO_MASK    (0x00)
#define SCKEY_P2_STATE_MASK (0x00)
#endif // end of #if (SCKEY_P2_CH == CH4)
/*Multi channel key*/
#if MKEY_CH4_MASK == (GROUP1|GROUP2)
#define MCKEY_P2_COMP_MASK  (0x88)
#define MCKEY_P2_IO_MASK    (0x0A) /*PD3 and PD1*/
#define MCKEY_P2_STATE_MASK (0x03)
#elif MKEY_CH4_MASK == GROUP1
#define MCKEY_P2_COMP_MASK  (0x08)
#define MCKEY_P2_IO_MASK    (0x02) /*PD1*/
#define MCKEY_P2_STATE_MASK (0x01)
#elif MKEY_CH4_MASK == GROUP2
#define MCKEY_P2_COMP_MASK  (0x80) /*PD3*/
#define MCKEY_P2_IO_MASK    (0x08)
#define MCKEY_P2_STATE_MASK (0x02)
#else
#define MCKEY_P2_COMP_MASK  (0x00)
#define MCKEY_P2_IO_MASK    (0x00)
#define MCKEY_P2_STATE_MASK (0x00)
#endif

#if ACTIVE_SHIELD_GROUP == GROUP1
#define ASHLD_P2_COMP_MASK  (0x08)
#define ASHLD_P2_IO_MASK    (0x02) /*PD1*/
#define ASHLD_P2_STATE_MASK (0x01)
#elif ACTIVE_SHIELD_GROUP == GROUP2
#define ASHLD_P2_COMP_MASK  (0x80)
#define ASHLD_P2_IO_MASK    (0x08) /*PD3*/
#define ASHLD_P2_STATE_MASK (0x02)
#else
#define ASHLD_P2_COMP_MASK  (0x00)
#define ASHLD_P2_IO_MASK    (0x00)
#define ASHLD_P2_STATE_MASK (0x00)
#endif

#define P2_COMP_MASK  (SCKEY_P2_COMP_MASK | MCKEY_P2_COMP_MASK | ASHLD_P2_COMP_MASK)
#define P2_IO_MASK    (SCKEY_P2_IO_MASK | MCKEY_P2_IO_MASK | ASHLD_P2_IO_MASK)
#define P2_STATE_MASK (SCKEY_P2_STATE_MASK | MCKEY_P2_STATE_MASK | ASHLD_P2_STATE_MASK)

#else
#error "Wrong Channel selection for SCKEY_P2"
#endif

#endif

#if (NUMBER_OF_ACQUISITION_PORTS > 2)
/*define the PORT1 comparator channel mask*/
#if   ((SCKEY_P3_CH == CH1) || MKEY_CH1_MASK)
#define P3_PORT        (GPIOB)
#define P3_IO_MASK_1   (0x01) /*PB0*/
#define P3_IO_MASK_2   (0x04) /*PB2*/
#if   (SCKEY_P3_CH == CH1)
#if ((SCKEY_P3_A == GROUP1) && (SCKEY_P3_B == GROUP2)) || ((SCKEY_P3_A == GROUP2) && (SCKEY_P3_B == GROUP1))
#define SCKEY_P3_COMP_MASK  (0x11)
#define SCKEY_P3_IO_MASK    (0x05) /*PB2 and PB0*/
#define SCKEY_P3_STATE_MASK (0x03)
#elif (SCKEY_P3_A == GROUP1) || (SCKEY_P3_B == GROUP1)
#define SCKEY_P3_COMP_MASK  (0x01)
#define SCKEY_P3_IO_MASK    (0x01) /*PB0*/
#define SCKEY_P3_STATE_MASK (0x01)
#elif (SCKEY_P3_A == GROUP2) || (SCKEY_P3_B == GROUP2)
#define SCKEY_P3_COMP_MASK  (0x10)
#define SCKEY_P3_IO_MASK    (0x04) /*PB2*/
#define SCKEY_P3_STATE_MASK (0x02)
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif // end of #if (SCKEY_P3_CH == CH1)
/*Multi channel key*/
#if MKEY_CH1_MASK == (GROUP1|GROUP2)
#define MCKEY_P3_COMP_MASK  (0x11)
#define MCKEY_P3_IO_MASK    (0x05) /*PB2 and PB0*/
#define MCKEY_P3_STATE_MASK (0x03)
#elif MKEY_CH1_MASK == GROUP1
#define MCKEY_P3_COMP_MASK  (0x01)
#define MCKEY_P3_IO_MASK    (0x01) /*PB0*/
#define MCKEY_P3_STATE_MASK (0x01)
#elif MKEY_CH1_MASK == GROUP2
#define MCKEY_P3_COMP_MASK  (0x10) /*PB2*/
#define MCKEY_P3_IO_MASK    (0x04)
#define MCKEY_P3_STATE_MASK (0x02)
#else
#define MCKEY_P3_COMP_MASK  (0x00)
#define MCKEY_P3_IO_MASK    (0x00)
#define MCKEY_P3_STATE_MASK (0x00)
#endif

#if ACTIVE_SHIELD_GROUP == GROUP1
#define ASHLD_P3_COMP_MASK  (0x01)
#define ASHLD_P3_IO_MASK    (0x01) /*PB0*/
#define ASHLD_P3_STATE_MASK (0x01)
#elif ACTIVE_SHIELD_GROUP == GROUP2
#define ASHLD_P3_COMP_MASK  (0x10)
#define ASHLD_P3_IO_MASK    (0x04) /*PB2*/
#define ASHLD_P3_STATE_MASK (0x02)
#else
#define ASHLD_P3_COMP_MASK  (0x00)
#define ASHLD_P3_IO_MASK    (0x00)
#define ASHLD_P3_STATE_MASK (0x00)
#endif

#define P3_COMP_MASK  (SCKEY_P3_COMP_MASK | MCKEY_P3_COMP_MASK | ASHLD_P3_COMP_MASK)
#define P3_IO_MASK    (SCKEY_P3_IO_MASK | MCKEY_P3_IO_MASK | ASHLD_P3_IO_MASK)
#define P3_STATE_MASK (SCKEY_P3_STATE_MASK | MCKEY_P3_STATE_MASK | ASHLD_P3_STATE_MASK)

#elif ((SCKEY_P3_CH == CH2) || MKEY_CH2_MASK)
#define P3_PORT        (GPIOB)
#define P3_IO_MASK_1   (0x02) /*PB1*/
#define P3_IO_MASK_2   (0x08) /*PB3*/

#if (SCKEY_P3_CH == CH2)
#if ((SCKEY_P3_A == GROUP1) && (SCKEY_P3_B == GROUP2)) || ((SCKEY_P3_A == GROUP2) && (SCKEY_P3_B == GROUP1))
#define SCKEY_P3_COMP_MASK  (0x22)
#define SCKEY_P3_IO_MASK    (0x0A) /*PB3 and PB1*/
#define SCKEY_P3_STATE_MASK (0x03)
#elif (SCKEY_P3_A == GROUP1) || (SCKEY_P3_B == GROUP1)
#define SCKEY_P3_COMP_MASK  (0x02)
#define SCKEY_P3_IO_MASK    (0x02) /*PB1*/
#define SCKEY_P3_STATE_MASK (0x01)
#elif (SCKEY_P3_A == GROUP2) || (SCKEY_P3_B == GROUP2)
#define SCKEY_P3_COMP_MASK  (0x20)
#define SCKEY_P3_IO_MASK    (0x08) /*PB3*/
#define SCKEY_P3_STATE_MASK (0x02)
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif // end of #if (SCKEY_P3_CH == CH2)
/*Multi channel key*/
#if MKEY_CH2_MASK == (GROUP1|GROUP2)
#define MCKEY_P3_COMP_MASK  (0x22)
#define MCKEY_P3_IO_MASK    (0x0A) /*PB1 and PB3*/
#define MCKEY_P3_STATE_MASK (0x03)
#elif MKEY_CH2_MASK == GROUP1
#define MCKEY_P3_COMP_MASK  (0x02)
#define MCKEY_P3_IO_MASK    (0x02) /*PB1*/
#define MCKEY_P3_STATE_MASK (0x01)
#elif MKEY_CH2_MASK == GROUP2
#define MCKEY_P3_COMP_MASK  (0x20) /*PB3*/
#define MCKEY_P3_IO_MASK    (0x08)
#define MCKEY_P3_STATE_MASK (0x02)
#else
#define MCKEY_P3_COMP_MASK  (0x00)
#define MCKEY_P3_IO_MASK    (0x00)
#define MCKEY_P3_STATE_MASK (0x00)
#endif

#if ACTIVE_SHIELD_GROUP == GROUP1
#define ASHLD_P3_COMP_MASK  (0x02)
#define ASHLD_P3_IO_MASK    (0x02) /*PB1*/
#define ASHLD_P3_STATE_MASK (0x01)
#elif ACTIVE_SHIELD_GROUP == GROUP2
#define ASHLD_P3_COMP_MASK  (0x20)
#define ASHLD_P3_IO_MASK    (0x08) /*PB3*/
#define ASHLD_P3_STATE_MASK (0x02)
#else
#define ASHLD_P3_COMP_MASK  (0x00)
#define ASHLD_P3_IO_MASK    (0x00)
#define ASHLD_P3_STATE_MASK (0x00)
#endif
#define P3_COMP_MASK  (SCKEY_P3_COMP_MASK | MCKEY_P3_COMP_MASK | ASHLD_P3_COMP_MASK)
#define P3_IO_MASK    (SCKEY_P3_IO_MASK | MCKEY_P3_IO_MASK | ASHLD_P3_IO_MASK)
#define P3_STATE_MASK (SCKEY_P3_STATE_MASK | MCKEY_P3_STATE_MASK | ASHLD_P3_STATE_MASK)

#elif ((SCKEY_P3_CH == CH3) || MKEY_CH3_MASK)
#define P3_PORT        (GPIOD)
#define P3_IO_MASK_1   (0x01) /*PD0*/
#define P3_IO_MASK_2   (0x04) /*PD2*/

#if (SCKEY_P3_CH == CH3)
/*single channel key*/
#if ((SCKEY_P3_A == GROUP1) && (SCKEY_P3_B == GROUP2)) || ((SCKEY_P3_A == GROUP2) && (SCKEY_P3_B == GROUP1))
#define SCKEY_P3_COMP_MASK  (0x44)
#define SCKEY_P3_IO_MASK    (0x05) /*PD2 and PD0*/
#define SCKEY_P3_STATE_MASK (0x03)
#elif (SCKEY_P3_A == GROUP1) || (SCKEY_P3_B == GROUP1)
#define SCKEY_P3_COMP_MASK  (0x04)
#define SCKEY_P3_IO_MASK    (0x01) /*PD0*/
#define SCKEY_P3_STATE_MASK (0x01)
#elif (SCKEY_P3_A == GROUP2) || (SCKEY_P3_B == GROUP2)
#define SCKEY_P3_COMP_MASK  (0x40) /*PD2*/
#define SCKEY_P3_IO_MASK    (0x04)
#define SCKEY_P3_STATE_MASK (0x02)
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif // end of #if (SCKEY_P3_CH == CH3)
/*Multi channel key*/
#if MKEY_CH3_MASK == (GROUP1|GROUP2)
#define MCKEY_P3_COMP_MASK  (0x44)
#define MCKEY_P3_IO_MASK    (0x05) /*PD2 and PD0*/
#define MCKEY_P3_STATE_MASK (0x03)
#elif MKEY_CH3_MASK == GROUP1
#define MCKEY_P3_COMP_MASK  (0x04)
#define MCKEY_P3_IO_MASK    (0x01) /*PD0*/
#define MCKEY_P3_STATE_MASK (0x01)
#elif MKEY_CH3_MASK == GROUP2
#define MCKEY_P3_COMP_MASK  (0x40) /*PD2*/
#define MCKEY_P3_IO_MASK    (0x04)
#define MCKEY_P3_STATE_MASK (0x02)
#else
#define MCKEY_P3_COMP_MASK  (0x00)
#define MCKEY_P3_IO_MASK    (0x00)
#define MCKEY_P3_STATE_MASK (0x00)
#endif

#if ACTIVE_SHIELD_GROUP == GROUP1
#define ASHLD_P3_COMP_MASK  (0x04)
#define ASHLD_P3_IO_MASK    (0x01) /*PD0*/
#define ASHLD_P3_STATE_MASK (0x01)
#elif ACTIVE_SHIELD_GROUP == GROUP2
#define ASHLD_P3_COMP_MASK  (0x40)
#define ASHLD_P3_IO_MASK    (0x04) /*PD2*/
#define ASHLD_P3_STATE_MASK (0x02)
#else
#define ASHLD_P3_COMP_MASK  (0x00)
#define ASHLD_P3_IO_MASK    (0x00)
#define ASHLD_P3_STATE_MASK (0x00)
#endif

#define P3_COMP_MASK  (SCKEY_P3_COMP_MASK | MCKEY_P3_COMP_MASK | ASHLD_P3_COMP_MASK)
#define P3_IO_MASK    (SCKEY_P3_IO_MASK | MCKEY_P3_IO_MASK | ASHLD_P3_IO_MASK)
#define P3_STATE_MASK (SCKEY_P3_STATE_MASK | MCKEY_P3_STATE_MASK | ASHLD_P3_STATE_MASK)

#elif ((SCKEY_P3_CH == CH4) || MKEY_CH4_MASK)
#define P3_PORT              (GPIOD)
#define P3_IO_MASK_1         (0x02) /*PD1*/
#define P3_IO_MASK_2         (0x08) /*PD3*/

#if (SCKEY_P3_CH == CH4)
/*Single channel key*/
#if ((SCKEY_P3_A == GROUP1) && (SCKEY_P3_B == GROUP2)) || ((SCKEY_P3_A == GROUP2) && (SCKEY_P3_B == GROUP1))
#define SCKEY_P3_COMP_MASK  (0x88)
#define SCKEY_P3_IO_MASK    (0x0A) /*PD3 and PD1*/
#define SCKEY_P3_STATE_MASK (0x03)
#elif (SCKEY_P3_A == GROUP1) || (SCKEY_P3_B == GROUP1)
#define SCKEY_P3_COMP_MASK  (0x08)
#define SCKEY_P3_IO_MASK    (0x02) /*PD1*/
#define SCKEY_P3_STATE_MASK (0x01)
#elif (SCKEY_P3_A == GROUP2) || (SCKEY_P3_B == GROUP2)
#define SCKEY_P3_COMP_MASK  (0x80) /*PD3*/
#define SCKEY_P3_IO_MASK    (0x08)
#define SCKEY_P3_STATE_MASK (0x02)
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif
#else
#define SCKEY_P3_COMP_MASK  (0x00)
#define SCKEY_P3_IO_MASK    (0x00)
#define SCKEY_P3_STATE_MASK (0x00)
#endif // end of #if (SCKEY_P3_CH == CH4)
/*Multi channel key*/
#if MKEY_CH4_MASK == (GROUP1|GROUP2)
#define MCKEY_P3_COMP_MASK  (0x88)
#define MCKEY_P3_IO_MASK    (0x0A) /*PD3 and PD1*/
#define MCKEY_P3_STATE_MASK (0x03)
#elif MKEY_CH4_MASK == GROUP1
#define MCKEY_P3_COMP_MASK  (0x08)
#define MCKEY_P3_IO_MASK    (0x02) /*PD1*/
#define MCKEY_P3_STATE_MASK (0x01)
#elif MKEY_CH4_MASK == GROUP2
#define MCKEY_P3_COMP_MASK  (0x80) /*PD3*/
#define MCKEY_P3_IO_MASK    (0x08)
#define MCKEY_P3_STATE_MASK (0x02)
#else
#define MCKEY_P3_COMP_MASK  (0x00)
#define MCKEY_P3_IO_MASK    (0x00)
#define MCKEY_P3_STATE_MASK (0x00)
#endif

#if ACTIVE_SHIELD_GROUP == GROUP1
#define ASHLD_P3_COMP_MASK  (0x08)
#define ASHLD_P3_IO_MASK    (0x02) /*PD1*/
#define ASHLD_P3_STATE_MASK (0x01)
#elif ACTIVE_SHIELD_GROUP == GROUP2
#define ASHLD_P3_COMP_MASK  (0x80)
#define ASHLD_P3_IO_MASK    (0x08) /*PD3*/
#define ASHLD_P3_STATE_MASK (0x02)
#else
#define ASHLD_P3_COMP_MASK  (0x00)
#define ASHLD_P3_IO_MASK    (0x00)
#define ASHLD_P3_STATE_MASK (0x00)
#endif
#define P3_COMP_MASK  (SCKEY_P3_COMP_MASK | MCKEY_P3_COMP_MASK | ASHLD_P3_COMP_MASK)
#define P3_IO_MASK    (SCKEY_P3_IO_MASK | MCKEY_P3_IO_MASK | ASHLD_P3_IO_MASK)
#define P3_STATE_MASK (SCKEY_P3_STATE_MASK | MCKEY_P3_STATE_MASK | ASHLD_P3_STATE_MASK)
#else
#error "Wrong Channel selection for SCKEY_P3"
#endif

#endif

//--------        LOCAL VARIABLES                 --------------


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//-----             LIBRARY PRIVATE GLOBALS                              -----
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

TOUCH_PORT_Info_T TINY sTouchIO;

u16 TINY CounterStop;
u8 TINY SamplingShifter;
u8 TINY AcquisitionBitMask;

Info_Channel Channel_P1;

#if (NUMBER_OF_ACQUISITION_PORTS > 1)
Info_Channel Channel_P2;
#endif
#if (NUMBER_OF_ACQUISITION_PORTS > 2)
Info_Channel Channel_P3;
#endif

/* This table is always defined */
#if NUMBER_OF_SINGLE_CHANNEL_PORTS > 0
__CONST u8 Table_SCKEY_P1[SCKEY_P1_KEY_COUNT] =
  {

#if   (SCKEY_P1_A == GROUP1)
    0x00
#elif (SCKEY_P1_A == GROUP2)
    0x01
#elif (SCKEY_P1_A == GROUP3)
    0x02
#elif (SCKEY_P1_A == GROUP4)
    0x03
#elif (SCKEY_P1_A == GROUP5)
    0x04
#elif (SCKEY_P1_A == GROUP6)
    0x05
#elif (SCKEY_P1_A == GROUP7)
    0x06
#elif (SCKEY_P1_A == GROUP8)
    0x07
#endif

#if SCKEY_P1_KEY_COUNT > 1
#if   (SCKEY_P1_B == GROUP1)
    , 0x00
#elif (SCKEY_P1_B == GROUP2)
    , 0x01
#elif (SCKEY_P1_B == GROUP3)
    , 0x02
#elif (SCKEY_P1_B == GROUP4)
    , 0x03
#elif (SCKEY_P1_B == GROUP5)
    , 0x04
#elif (SCKEY_P1_B == GROUP6)
    , 0x05
#elif (SCKEY_P1_B == GROUP7)
    , 0x06
#elif (SCKEY_P1_B == GROUP8)
    , 0x07
#endif
#endif
#if SCKEY_P1_KEY_COUNT > 2
#if   (SCKEY_P1_C == GROUP1)
    , 0x00
#elif (SCKEY_P1_C == GROUP2)
    , 0x01
#elif (SCKEY_P1_C == GROUP3)
    , 0x02
#elif (SCKEY_P1_C == GROUP4)
    , 0x03
#elif (SCKEY_P1_C == GROUP5)
    , 0x04
#elif (SCKEY_P1_C == GROUP6)
    , 0x05
#elif (SCKEY_P1_C == GROUP7)
    , 0x06
#elif (SCKEY_P1_C == GROUP8)
    , 0x07
#endif
#endif
#if SCKEY_P1_KEY_COUNT > 3
#if   (SCKEY_P1_D == GROUP1)
    , 0x00
#elif (SCKEY_P1_D == GROUP2)
    , 0x01
#elif (SCKEY_P1_D == GROUP3)
    , 0x02
#elif (SCKEY_P1_D == GROUP4)
    , 0x03
#elif (SCKEY_P1_D == GROUP5)
    , 0x04
#elif (SCKEY_P1_D == GROUP6)
    , 0x05
#elif (SCKEY_P1_D == GROUP7)
    , 0x06
#elif (SCKEY_P1_D == GROUP8)
    , 0x07
#endif
#endif
#if SCKEY_P1_KEY_COUNT > 4
#if   (SCKEY_P1_E == GROUP1)
    , 0x00
#elif (SCKEY_P1_E == GROUP2)
    , 0x01
#elif (SCKEY_P1_E == GROUP3)
    , 0x02
#elif (SCKEY_P1_E == GROUP4)
    , 0x03
#elif (SCKEY_P1_E == GROUP5)
    , 0x04
#elif (SCKEY_P1_E == GROUP6)
    , 0x05
#elif (SCKEY_P1_E == GROUP7)
    , 0x06
#elif (SCKEY_P1_E == GROUP8)
    , 0x07

⌨️ 快捷键说明

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