menu_cnfg.h

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 165 行

H
165
字号
/*************************************************************************
 *
 *    Used with ICCARM and AARM.
 *
 *    (c) Copyright IAR Systems 2005
 *
 *    File name   : menu_cnfg.h
 *    Description : Menu settings
 *
 *    History :
 *    1. Date        : July 20, 2005
 *       Author      : Stanimir Bonev
 *       Description : Create
 *
 *    $Revision: 16170 $
 **************************************************************************/
#ifndef  __MENU_CONFIG_H
#define  __MENU_CONFIG_H

/* USER Menu Index definition */
typedef enum
{
  MENU_WELCOME_SHOW = 0,      /*0 Welcome */
  MENU_TEMP_SHOW,             /*1 Temperature Show */
  MENU_TEMP_SETTINGS_SHOW,    /*2 Temperature settings */
  MENU_ACTION_SETTINGS_SHOW,  /*3 Action settings */
  MENU_SETTINGS_SHOW,         /*4 Menu settings */
  MENU_SCREENSAVER_SHOW,      /*5 ScreenSaver show */

  MENU_TEMP_UNITS_SHOW,       /*6 2.1 temperature unit */
  MENU_NTC_CAL_SHOW,          /*7 2.2 NTC Calibration */

  MENU_ALARM_SETTINGS_SHOW,   /*8 3.1 Alarm Settings */
  MENU_WARNING_SETTINGS_SHOW, /*9 3.2 Warning Settings */

  MENU_LIGHT_SETTINGS_SHOW,   /*10 4.1 Illumination Settings */
  MENU_ANIM_ENABLE_SHOW,      /*11 4.2 Animation Enable */
  MENU_ANIM_SPEED_SHOW,       /*12 4.3 Animation Speed */

  MENU_NTC_CAL_TEMP_SHOW,     /*13 2.2.1 NTC Calibration Set temperature */

  MENU_ALARM_ENA_SHOW,        /*14 3.1.1 Alarm Enable */
  MENU_ALARM_MIN_SHOW,        /*15 3.1.2 Alarm Min */
  MENU_ALARM_MAX_SHOW,        /*16 3.1.3 Alarm Max */

  MENU_WARNING_ENA_SHOW,      /*17 3.2.1 Warning Enable */
  MENU_WARNING_MIN_SHOW,      /*18 3.2.2 Warning Min */
  MENU_WARNING_MAX_SHOW,      /*19 3.2.3 Warning Max */

  MENU_ALARM_MIN_ENT_SHOW,    /*20 3.1.2.1 Alarm Min Enter */
  MENU_ALARM_MAX_ENT_SHOW,    /*21 3.1.3.1 Alarm Max Enter */

  MENU_WARNING_MIN_ENT_SHOW,  /*22 3.2.2.1 Warning Min Enter */
  MENU_WARNING_MAX_ENT_SHOW,  /*23 3.2.3.1 Warning Max Enter */

  MENU_LAST_IND               /* Last menu index */
} MENU_IND_NAME_DEF;

/* USER Event definition */
typedef enum
{
  /* 0 is reserve for internal using */
  MENU_TICK_EVENT = 1,  /* SYS TICK */
  MENU_EVENT_B_LEFT_PRESS,
  MENU_EVENT_B_LEFT_HOLD,
  MENU_EVENT_B_LEFT_HOLD_LONG,
  MENU_EVENT_B_RIGHT_PRESS,
  MENU_EVENT_B_RIGHT_HOLD,
  MENU_EVENT_B_RIGHT_HOLD_LONG,
  MENU_EVENT_B_SELECT_PRESS,
  MENU_EVENT_B_CANCEL_PRESS,
  MENU_EVENT_DATA_UPDATE,
} MENU_EVENT_NAME_DEF;

/* User Language definition */
typedef enum
{
  MENU_ENGLISH_LANG = 0,  /*0 English language */
} MENU_LANGUAGE_NAME_DEF;

/* Menu time out definition */
#define MENU_WELCOM_DLY           3 *TICK_PER_SECOND    /* 3  sec */
#define MENU_SCREEN_SAVER_DLY     25*TICK_PER_SECOND    /* 10 sec */
#define MENU_SCREEN_SAVER_1_DLY   4 *TICK_PER_SECOND    /* 4  sec */
#define MENU_TO_DLY               10*TICK_PER_SECOND    /* 10 sec */
#define MENU_LOW_POWER_DLY        20*TICK_PER_SECOND    /* 20 sec */

#define MENU_ANIMATION_DEF_SPEED  3

/* Common menu definitions */
#define MENU_EVENT_STACK_SIZE 5

#define MENU_LANGUAGE_NUMBER  1

#define MENU_MAX_INDEX        MENU_LAST_IND

#define MENU_MAX_EVENT_NUBER  256

#define MENU_MAX_STR_LENG     41

#define MENU_MAX_VISIBILITY_X 16
#define MENU_MAX_VISIBILITY_Y 2

#define MEMU_MAX_TIME_OUT     1000

/* Menu Events type def */
#if MENU_MAX_EVENT_NUBER < 256
#define MENU_EVENT_TYPE_DEF Int8U
#elif MENU_MAX_EVENT_NUBER < 65536
#define MENU_EVENT_TYPE_DEF Int16U
#elif MENU_LANGUAGE_NUMBER < 0x100000000
#define MENU_EVENT_TYPE_DEF Int32U
#else
#error "MENU_MAX_EVENT_NUBER is to large number > 32bit!!!"
#endif

/* Menu Language type def */
#if MENU_LANGUAGE_NUMBER < 256
#define MENU_LANG_TYPE_DEF Int8U
#elif MENU_LANGUAGE_NUMBER < 65536
#define MENU_LANG_TYPE_DEF Int16U
#elif MENU_LANGUAGE_NUMBER < 0x100000000
#define MENU_LANG_TYPE_DEF Int32U
#else
#error "MENU_LANGUAGE_NUMBER is to large number > 32bit!!!"
#endif

/* Menu Index type def */
#if MENU_MAX_INDEX < 256
#define MEMU_IND_DEF Int8U
#elif MENU_MAX_INDEX < 65536
#define MEMU_IND_DEF Int16U
#elif MENU_MAX_INDEX < 0x100000000
#define MEMU_IND_DEF Int32U
#else
#error "MENU_MAX_INDEX is to large number > 32bit!!!"
#endif

/* XY coordinate type def */
#if ((MENU_MAX_VISIBILITY_X < 256) && (MENU_MAX_VISIBILITY_Y < 256))
#define MEMU_XY_DEF Int8U
#elif ((MENU_MAX_VISIBILITY_X < 65536) && (MENU_MAX_VISIBILITY_Y < 65536))
#define MEMU_XY_DEF Int16U
#elif ((MENU_MAX_VISIBILITY_X < 0x100000000) && (MENU_MAX_VISIBILITY_Y < 0x100000000))
#define MEMU_XY_DEF Int32U
#else
#error "X or Y is to large number > 32bit!!!"
#endif

/* time out type def */
#if MEMU_MAX_TIME_OUT < 255
#define MEMU_TIME_OUT_DEF Int8U
#define MENU_TIME_OUT_NOT_UPADATE 255
#elif MEMU_MAX_TIME_OUT < 65535
#define MEMU_TIME_OUT_DEF Int16U
#define MENU_TIME_OUT_NOT_UPADATE 65535
#elif MEMU_MAX_TIME_OUT < 0xFFFFFFFF
#define MEMU_TIME_OUT_DEF Int32U
#define MENU_TIME_OUT_NOT_UPADATE 0xFFFFFFFF
#else
#error "Menu Time out is to large number > 32bit!!!"
#endif

#endif  /* __MENU_CONFIG_H */

⌨️ 快捷键说明

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