📄 lib_def.h
字号:
#define DEF_INT_08U_NBR_DIG_MIN 1u
#define DEF_INT_08U_NBR_DIG_MAX 3u
#define DEF_INT_08S_NBR_DIG_MIN 3u
#define DEF_INT_08S_NBR_DIG_MAX 3u
#define DEF_INT_16_NBR_BITS 16u
#define DEF_INT_16_MASK 0xFFFFu
#define DEF_INT_16U_MIN_VAL 0u
#define DEF_INT_16U_MAX_VAL 65535u
#define DEF_INT_16S_MIN_VAL_ONES_CPL (-32767)
#define DEF_INT_16S_MAX_VAL_ONES_CPL 32767
#define DEF_INT_16S_MIN_VAL (DEF_INT_16S_MIN_VAL_ONES_CPL - 1)
#define DEF_INT_16S_MAX_VAL DEF_INT_16S_MAX_VAL_ONES_CPL
#define DEF_INT_16U_NBR_DIG_MIN 1u
#define DEF_INT_16U_NBR_DIG_MAX 5u
#define DEF_INT_16S_NBR_DIG_MIN 5u
#define DEF_INT_16S_NBR_DIG_MAX 5u
#define DEF_INT_32_NBR_BITS 32u
#define DEF_INT_32_MASK 0xFFFFFFFFu
#define DEF_INT_32U_MIN_VAL 0u
#define DEF_INT_32U_MAX_VAL 4294967295u
#define DEF_INT_32S_MIN_VAL_ONES_CPL (-2147483647)
#define DEF_INT_32S_MAX_VAL_ONES_CPL 2147483647
#define DEF_INT_32S_MIN_VAL (DEF_INT_32S_MIN_VAL_ONES_CPL - 1)
#define DEF_INT_32S_MAX_VAL DEF_INT_32S_MAX_VAL_ONES_CPL
#define DEF_INT_32U_NBR_DIG_MIN 1u
#define DEF_INT_32U_NBR_DIG_MAX 10u
#define DEF_INT_32S_NBR_DIG_MIN 10u
#define DEF_INT_32S_NBR_DIG_MAX 10u
#define DEF_INT_64_NBR_BITS 64u
#define DEF_INT_64_MASK 0xFFFFFFFFFFFFFFFFu
#define DEF_INT_64U_MIN_VAL 0u
#define DEF_INT_64U_MAX_VAL 18446744073709551615u
#define DEF_INT_64S_MIN_VAL_ONES_CPL (-9223372036854775807)
#define DEF_INT_64S_MAX_VAL_ONES_CPL 9223372036854775807
#define DEF_INT_64S_MIN_VAL (DEF_INT_64S_MIN_VAL_ONES_CPL - 1)
#define DEF_INT_64S_MAX_VAL DEF_INT_64S_MAX_VAL_ONES_CPL
#define DEF_INT_64U_NBR_DIG_MIN 1u
#define DEF_INT_64U_NBR_DIG_MAX 20u
#define DEF_INT_64S_NBR_DIG_MIN 19u
#define DEF_INT_64S_NBR_DIG_MAX 19u
/*$PAGE*/
/* --------------- CPU INTEGER DEFINES ---------------- */
#define DEF_INT_CPU_NBR_BITS (CPU_CFG_DATA_SIZE * DEF_OCTET_NBR_BITS)
#if (DEF_INT_CPU_NBR_BITS == DEF_INT_08_NBR_BITS)
#define DEF_INT_CPU_MASK DEF_INT_08_MASK
#define DEF_INT_CPU_U_MIN_VAL DEF_INT_08U_MIN_VAL
#define DEF_INT_CPU_U_MAX_VAL DEF_INT_08U_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL DEF_INT_08S_MIN_VAL
#define DEF_INT_CPU_S_MAX_VAL DEF_INT_08S_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL_ONES_CPL DEF_INT_08S_MIN_VAL_ONES_CPL
#define DEF_INT_CPU_S_MAX_VAL_ONES_CPL DEF_INT_08S_MAX_VAL_ONES_CPL
#elif (DEF_INT_CPU_NBR_BITS == DEF_INT_16_NBR_BITS)
#define DEF_INT_CPU_MASK DEF_INT_16_MASK
#define DEF_INT_CPU_U_MIN_VAL DEF_INT_16U_MIN_VAL
#define DEF_INT_CPU_U_MAX_VAL DEF_INT_16U_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL DEF_INT_16S_MIN_VAL
#define DEF_INT_CPU_S_MAX_VAL DEF_INT_16S_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL_ONES_CPL DEF_INT_16S_MIN_VAL_ONES_CPL
#define DEF_INT_CPU_S_MAX_VAL_ONES_CPL DEF_INT_16S_MAX_VAL_ONES_CPL
#elif (DEF_INT_CPU_NBR_BITS == DEF_INT_32_NBR_BITS)
#define DEF_INT_CPU_MASK DEF_INT_32_MASK
#define DEF_INT_CPU_U_MIN_VAL DEF_INT_32U_MIN_VAL
#define DEF_INT_CPU_U_MAX_VAL DEF_INT_32U_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL DEF_INT_32S_MIN_VAL
#define DEF_INT_CPU_S_MAX_VAL DEF_INT_32S_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL_ONES_CPL DEF_INT_32S_MIN_VAL_ONES_CPL
#define DEF_INT_CPU_S_MAX_VAL_ONES_CPL DEF_INT_32S_MAX_VAL_ONES_CPL
#elif (DEF_INT_CPU_NBR_BITS == DEF_INT_64_NBR_BITS)
#define DEF_INT_CPU_MASK DEF_INT_64_MASK
#define DEF_INT_CPU_U_MIN_VAL DEF_INT_64U_MIN_VAL
#define DEF_INT_CPU_U_MAX_VAL DEF_INT_64U_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL DEF_INT_64S_MIN_VAL
#define DEF_INT_CPU_S_MAX_VAL DEF_INT_64S_MAX_VAL
#define DEF_INT_CPU_S_MIN_VAL_ONES_CPL DEF_INT_64S_MIN_VAL_ONES_CPL
#define DEF_INT_CPU_S_MAX_VAL_ONES_CPL DEF_INT_64S_MAX_VAL_ONES_CPL
#else
#error "CPU_CFG_DATA_SIZE illegally #defined in 'cpu.h' "
#error " [See 'cpu.h CONFIGURATION ERRORS']"
#endif
/*$PAGE*/
/* ------------------- TIME DEFINES ------------------- */
#define DEF_TIME_NBR_DAY_PER_WK 7uL
#define DEF_TIME_NBR_DAY_PER_YR 365uL
#define DEF_TIME_NBR_DAY_PER_YR_LEAP 366uL
#define DEF_TIME_NBR_HR_PER_DAY 24uL
#define DEF_TIME_NBR_HR_PER_WK (DEF_TIME_NBR_HR_PER_DAY * DEF_TIME_NBR_DAY_PER_WK )
#define DEF_TIME_NBR_HR_PER_YR (DEF_TIME_NBR_HR_PER_DAY * DEF_TIME_NBR_DAY_PER_YR )
#define DEF_TIME_NBR_HR_PER_YR_LEAP (DEF_TIME_NBR_HR_PER_DAY * DEF_TIME_NBR_DAY_PER_YR_LEAP)
#define DEF_TIME_NBR_MIN_PER_HR 60uL
#define DEF_TIME_NBR_MIN_PER_DAY (DEF_TIME_NBR_MIN_PER_HR * DEF_TIME_NBR_HR_PER_DAY )
#define DEF_TIME_NBR_MIN_PER_WK (DEF_TIME_NBR_MIN_PER_DAY * DEF_TIME_NBR_DAY_PER_WK )
#define DEF_TIME_NBR_MIN_PER_YR (DEF_TIME_NBR_MIN_PER_DAY * DEF_TIME_NBR_DAY_PER_YR )
#define DEF_TIME_NBR_MIN_PER_YR_LEAP (DEF_TIME_NBR_MIN_PER_DAY * DEF_TIME_NBR_DAY_PER_YR_LEAP)
#define DEF_TIME_NBR_SEC_PER_MIN 60uL
#define DEF_TIME_NBR_SEC_PER_HR (DEF_TIME_NBR_SEC_PER_MIN * DEF_TIME_NBR_MIN_PER_HR )
#define DEF_TIME_NBR_SEC_PER_DAY (DEF_TIME_NBR_SEC_PER_HR * DEF_TIME_NBR_HR_PER_DAY )
#define DEF_TIME_NBR_SEC_PER_WK (DEF_TIME_NBR_SEC_PER_DAY * DEF_TIME_NBR_DAY_PER_WK )
#define DEF_TIME_NBR_SEC_PER_YR (DEF_TIME_NBR_SEC_PER_DAY * DEF_TIME_NBR_DAY_PER_YR )
#define DEF_TIME_NBR_SEC_PER_YR_LEAP (DEF_TIME_NBR_SEC_PER_DAY * DEF_TIME_NBR_DAY_PER_YR_LEAP)
#define DEF_TIME_NBR_mS_PER_SEC 1000uL
#define DEF_TIME_NBR_uS_PER_SEC 1000000uL
#define DEF_TIME_NBR_nS_PER_SEC 1000000000uL
/*$PAGE*/
/*
*********************************************************************************************************
* ERROR CODES
*
* Note(s) : (1) All generic library error codes are #define'd in 'lib_def.h';
* Any module-specific error codes are #define'd in library module header files.
*********************************************************************************************************
*/
#define LIB_ERR_NONE 0u
/*$PAGE*/
/*
*********************************************************************************************************
* DATA TYPES
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* LIBRARY ERROR CODES DATA TYPE
*********************************************************************************************************
*/
typedef CPU_INT16U LIB_ERR;
/*
*********************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************
*/
/*$PAGE*/
/*
*********************************************************************************************************
* BIT MACRO'S
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* DEF_BIT()
*
* Description : Create bit mask with single, specified bit set.
*
* Argument(s) : bit Bit number of bit to set.
*
* Return(s) : Bit mask with single, specified bit set.
*
* Caller(s) : Application.
*
* Note(s) : (1) (a) 'bit' values that overflow the target CPU &/or compiler environment (e.g. negative
* or greater-than-CPU-data-size values) MAY generate compiler warnings &/or errors.
*
* (b) To avoid overflowing any target CPU &/or compiler's integer data type, unsigned
* bit constant '1' is suffixed with 'L'ong integer modifier.
*
* This may still be insufficient for CPUs &/or compilers that support 'long long'
* integer data types, in which case 'LL' integer modifier should be suffixed.
* However, since almost all 16- & 32-bit CPUs & compilers support 'long' integer
* data types but many may NOT support 'long long' integer data types, only 'long'
* integer data types & modifiers are supported.
*
* See also 'DEF_BITxx() Note #1b'.
*********************************************************************************************************
*/
#define DEF_BIT(bit) (1uL << (bit))
/*
*********************************************************************************************************
* DEF_BITxx()
*
* Description : Create bit mask of specified bit size with single, specified bit set.
*
* Argument(s) : bit Bit number of bit to set.
*
* Return(s) : Bit mask with single, specified bit set.
*
* Caller(s) : Application.
*
* Note(s) : (1) (a) 'bit' values that overflow the target CPU &/or compiler environment (e.g. negative
* or greater-than-CPU-data-size values) MAY generate compiler warnings &/or errors.
*
* (b) To avoid overflowing any target CPU &/or compiler's integer data type, unsigned
* bit constant '1' is cast to specified integer data type size.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -