📄 common.h
字号:
/******************************************************************************/
/* DNA PROPRIETARY INFORMATION */
/* (C) Copyright 1997,1998 by DNA Enterprises, Inc. */
/* All rights reserved */
/******************************************************************************/
/* COMMON.H - Common Utilities */
/* */
/* This module provides common macro definitions and functions. */
/* */
/* MACRO FUNCTIONS: */
/* CSET_BIT() - Set bit in memory-mapped, byte-wide register */
/* CGET_BIT() - Get bit in memory-mapped, byte-wide register */
/* CCLR_BIT() - Clear bit in memory-mapped, byte-wide register */
/* CGET_FIELD() - Get field in memory-mapped, byte-wide register */
/* CLOAD_FIELD() - Load field in memory-mapped, byte-wide register */
/* CREG_READ() - Read memory-mapped, byte-wide register */
/* CREG_WRITE() - Write memory-mapped, byte-wide register */
/* */
/******************************************************************************/
#ifndef _COMMON_H_
#define _COMMON_H_
/*----------------------------------------------------------------------------*/
/* INCLUDES */
/*----------------------------------------------------------------------------*/
#include "regs.h" /* Peripheral Support Library register access macros */
/*----------------------------------------------------------------------------*/
/* MACRO DEFINITIONS */
/*----------------------------------------------------------------------------*/
#define OK 0
#define ERROR -1
#define TRUE 1
#define FALSE 0
#define CLOSED 0
#define OPEN 1
#define BUSY 2
#define PI 3.14159
#define EXIT_ERROR(y) \
if (y) goto exit_err
/*----------------------------------------------------------------------------*/
/* MACRO FUNCTIONS */
/*----------------------------------------------------------------------------*/
/******************************************************************************/
/* Memory-mapped Byte Manipulation Macros */
/******************************************************************************/
#define CSET_BIT(reg,bit) \
((*((volatile unsigned char *)(reg))) |= (MASK_BIT(bit)))
#define CGET_BIT(reg,bit) \
((*((volatile unsigned char *)(reg))) & (MASK_BIT(bit)) ? 1 : 0)
#define CCLR_BIT(reg,bit) \
((*((volatile unsigned char *)(reg))) &= (~MASK_BIT(bit)))
#define CGET_FIELD(reg,bit,length) \
((*((volatile unsigned char *)(reg)) & (MASK_FIELD(bit,length))) >> bit)
#define CLOAD_FIELD(reg,bit,length,val) \
((*((volatile unsigned char *)(reg))) = \
((*((volatile unsigned char *)(reg)) & (~MASK_FIELD(bit,length)))) | (val<<bit))
#define CREG_READ(addr) \
(*((unsigned char *)(addr)))
#define CREG_WRITE(addr,val) \
(*((unsigned char *)(addr)) = (val))
/******************************************************************************/
/* DEBUG - prints message to debugger window if PRINT_DBG = 1 */
/******************************************************************************/
#if PRINT_DBG
#define DEBUG(p_str) \
{ \
printf("%s\n ",p_str); \
}
#else
#define DEBUG(p_str) { }
#endif
#endif /*_COMMON_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -