hal_type.h

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

H
68
字号
//-----------------------------------------------------------------------------
// HAL_TYPE
//-----------------------------------------------------------------------------
#ifndef HAL_TYPE_H
#define HAL_TYPE_H

//-----------------------------------------------------------------------------
typedef unsigned long            u32;
typedef unsigned short           u16;
typedef unsigned char            u8;

typedef signed long              s32;
typedef signed short             s16;
typedef signed char              s8;

typedef volatile unsigned long   vu32;
typedef volatile unsigned short  vu16;
typedef volatile unsigned char   vu8;

typedef volatile signed long     vs32;
typedef volatile signed short    vs16;
typedef volatile signed char     vs8;

//-----------------------------------------------------------------------------
// TYPEDEFs
//-----------------------------------------------------------------------------
typedef enum {RESET = 0, SET = !RESET} FlagStatus;
typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
typedef enum {INDIRECT = 0, DIRECT = !INDIRECT} RegisterAccess;

#define functionalstate FunctionalState
#define flagstatus      FlagStatus
#define registeraccess  RegisterAccess

//-----------------------------------------------------------------------------
// BIT OPERATION
//-----------------------------------------------------------------------------
#define SetBit(VAR,Place)         ( VAR |= (1<<Place) )
#define ClrBit(VAR,Place)         ( VAR &= ~(1<<Place) )
#define ClrBit8(VAR,Place)        ( VAR &= ((1<<Place)^255) )
#define ClrBit16(VAR,Place)       ( VAR &= ((1<<Place)^0xFFFF) )
#define ClrBit32(VAR,Place)       ( VAR &= ((1<<Place)^0xFFFFFFFF) )
#define ValBit(VAR,Place)         ( VAR & (1<<Place) )
#define MskBit(Dest,Msk,Src)      ( Dest = (Msk & Src) | ((~Msk) & Dest) )

//-----------------------------------------------------------------------------
// GENERAL BIT DEFINITION
//-----------------------------------------------------------------------------
#define bit0 0
#define bit1 1
#define bit2 2
#define bit3 3
#define bit4 4
#define bit5 5
#define bit6 6
#define bit7 7

//-----------------------------------------------------------------------------
// TIME DELAY
//-----------------------------------------------------------------------------
inline void TimeDelay (u32 time)
{
  for (u32 i=0;i<time; i++);
}
#define TIME_DELAY_1MS 300
//-----------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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