📄 macro.h
字号:
/* ---------------------------------------------------------------------------- */
/* M A C R O - Definitions */
/* ---------------------------------------------------------------------------- */
//1.常量值的定义
//2.基本汇编指令的定义,如NOP等
//3.位超作定义:16位和32位变量的位清0、位设置、位取反、以及判断某位是否为1
//4.系统变量定义
#ifndef _MACRO_h
#define _MACRO_h
#define Uint16 unsigned int
#define Uint32 unsigned long
#define SYSFREQUENCE 135000000
#define ONESECOND SYSFREQUENCE
#define TIME200ms 27000000
#define TIME100ms 13500000
#define TIME20ms 2700000
#define TIME5ms 675000
#define TIME2ms 270000
#define TIME1ms 135000
#define TIME1us 135
#define MAXDATA32BIT 4294967295
#define SCIARATE 9600 // SCIA 的波特率
#define SCIBRATE 9600 // SCIB 的波特率
/*==================================================================*/
#define NOP asm(" NOP")
#define nop asm(" NOP")
#define INT_ENABLE asm(" CLRC INTM")
#define INT_DISABLE asm(" SETC INTM")
#define EINT asm(" clrc INTM")
#define DINT asm(" setc INTM")
#define ERTM asm(" clrc DBGM")
#define DRTM asm(" setc DBGM")
#define EALLOW asm(" EALLOW")
#define EDIS asm(" EDIS")
#define ESTOP0 asm(" ESTOP0")
#define KickDog { WDKEY=0x0055; \
WDKEY=0x00AA; }
//====================== 16bit Data bit define ===============
#define BIT0_16 0x0001
#define _BIT0_16 0xfffe
#define BIT1_16 0x0002
#define _BIT1_16 0xfffd
#define BIT2_16 0x0004
#define _BIT2_16 0xfffb
#define BIT3_16 0x0008
#define _BIT3_16 0xfff7
#define BIT4_16 0x0010
#define _BIT4_16 0xffef
#define BIT5_16 0x0020
#define _BIT5_16 0xffdf
#define BIT6_16 0x0040
#define _BIT6_16 0xffbf
#define BIT7_16 0x0080
#define _BIT7_16 0xff7f
#define BIT8_16 0x0100
#define _BIT8_16 0xfeff
#define BIT9_16 0x0200
#define _BIT9_16 0xfdff
#define BIT10_16 0x0400
#define _BIT10_16 0xfbff
#define BIT11_16 0x0800
#define _BIT11_16 0xf7ff
#define BIT12_16 0x1000
#define _BIT12_16 0xefff
#define BIT13_16 0x2000
#define _BIT13_16 0xdfff
#define BIT14_16 0x4000
#define _BIT14_16 0xbfff
#define BIT15_16 0x8000
#define _BIT15_16 0x7fff
//====================== 32 bit Data bit define ===============
#define BIT0_32 0x00000001
#define _BIT0_32 0xfffffffe
#define BIT1_32 0x00000002
#define _BIT1_32 0xfffffffd
#define BIT2_32 0x00000004
#define _BIT2_32 0xfffffffb
#define BIT3_32 0x00000008
#define _BIT3_32 0xfffffff7
#define BIT4_32 0x00000010
#define _BIT4_32 0xffffffef
#define BIT5_32 0x00000020
#define _BIT5_32 0xffffffdf
#define BIT6_32 0x00000040
#define _BIT6_32 0xffffffbf
#define BIT7_32 0x00000080
#define _BIT7_32 0xffffff7f
#define BIT8_32 0x00000100
#define _BIT8_32 0xfffffeff
#define BIT9_32 0x00000200
#define _BIT9_32 0xfffffdff
#define BIT10_32 0x00000400
#define _BIT10_32 0xfffffbff
#define BIT11_32 0x00000800
#define _BIT11_32 0xfffff7ff
#define BIT12_32 0x00001000
#define _BIT12_32 0xffffefff
#define BIT13_32 0x00002000
#define _BIT13_32 0xffffdfff
#define BIT14_32 0x00004000
#define _BIT14_32 0xffffbfff
#define BIT15_32 0x00008000
#define _BIT15_32 0xffff7fff
#define BIT16_32 0x00010000
#define _BIT16_32 0xfffeffff
#define BIT17_32 0x00020000
#define _BIT17_32 0xfffdffff
#define BIT18_32 0x00040000
#define _BIT18_32 0xfffbffff
#define BIT19_32 0x00080000
#define _BIT19_32 0xfff7ffff
#define BIT20_32 0x00100000
#define _BIT20_32 0xffefffff
#define BIT21_32 0x00200000
#define _BIT21_32 0xffdfffff
#define BIT22_32 0x00400000
#define _BIT22_32 0xffbfffff
#define BIT23_32 0x00800000
#define _BIT23_32 0xff7fffff
#define BIT24_32 0x01000000
#define _BIT24_32 0xfeffffff
#define BIT25_32 0x02000000
#define _BIT25_32 0xfdffffff
#define BIT26_32 0x04000000
#define _BIT26_32 0xfbffffff
#define BIT27_32 0x08000000
#define _BIT27_32 0xf7ffffff
#define BIT28_32 0x10000000
#define _BIT28_32 0xefffffff
#define BIT29_32 0x20000000
#define _BIT29_32 0xdfffffff
#define BIT30_32 0x40000000
#define _BIT30_32 0xbfffffff
#define BIT31_32 0x80000000
#define _BIT31_32 0x7fffffff
//================ 16bits Data bit set =================
#define SetBit0_16(a) a|=BIT0_16
#define SetBit1_16(a) a|=BIT1_16
#define SetBit2_16(a) a|=BIT2_16
#define SetBit3_16(a) a|=BIT3_16
#define SetBit4_16(a) a|=BIT4_16
#define SetBit5_16(a) a|=BIT5_16
#define SetBit6_16(a) a|=BIT6_16
#define SetBit7_16(a) a|=BIT7_16
#define SetBit8_16(a) a|=BIT8_16
#define SetBit9_16(a) a|=BIT9_16
#define SetBit10_16(a) a|=BIT10_16
#define SetBit11_16(a) a|=BIT11_16
#define SetBit12_16(a) a|=BIT12_16
#define SetBit13_16(a) a|=BIT13_16
#define SetBit14_16(a) a|=BIT14_16
#define SetBit15_16(a) a|=BIT15_16
//================ 16bits Data bit clr =================
#define ClrBit0_16(a) a&=_BIT0_16
#define ClrBit1_16(a) a&=_BIT1_16
#define ClrBit2_16(a) a&=_BIT2_16
#define ClrBit3_16(a) a&=_BIT3_16
#define ClrBit4_16(a) a&=_BIT4_16
#define ClrBit5_16(a) a&=_BIT5_16
#define ClrBit6_16(a) a&=_BIT6_16
#define ClrBit7_16(a) a&=_BIT7_16
#define ClrBit8_16(a) a&=_BIT8_16
#define ClrBit9_16(a) a&=_BIT9_16
#define ClrBit10_16(a) a&=_BIT10_16
#define ClrBit11_16(a) a&=_BIT11_16
#define ClrBit12_16(a) a&=_BIT12_16
#define ClrBit13_16(a) a&=_BIT13_16
#define ClrBit14_16(a) a&=_BIT14_16
#define ClrBit15_16(a) a&=_BIT15_16
//================ 16bits Data bit cpl =================
#define CplBit0_16(a) a^=BIT0_16
#define CplBit1_16(a) a^=BIT1_16
#define CplBit2_16(a) a^=BIT2_16
#define CplBit3_16(a) a^=BIT3_16
#define CplBit4_16(a) a^=BIT4_16
#define CplBit5_16(a) a^=BIT5_16
#define CplBit6_16(a) a^=BIT6_16
#define CplBit7_16(a) a^=BIT7_16
#define CplBit8_16(a) a^=BIT8_16
#define CplBit9_16(a) a^=BIT9_16
#define CplBit10_16(a) a^=BIT10_16
#define CplBit11_16(a) a^=BIT11_16
#define CplBit12_16(a) a^=BIT12_16
#define CplBit13_16(a) a^=BIT13_16
#define CplBit14_16(a) a^=BIT14_16
#define CplBit15_16(a) a^=BIT15_16
//========== 16bits Data bit if ==============
#define ifBit0_16(a) ((a)&BIT0_16)
#define ifBit1_16(a) ((a)&BIT1_16)
#define ifBit2_16(a) ((a)&BIT2_16)
#define ifBit3_16(a) ((a)&BIT3_16)
#define ifBit4_16(a) ((a)&BIT4_16)
#define ifBit5_16(a) ((a)&BIT5_16)
#define ifBit6_16(a) ((a)&BIT6_16)
#define ifBit7_16(a) ((a)&BIT7_16)
#define ifBit8_16(a) ((a)&BIT8_16)
#define ifBit9_16(a) ((a)&BIT9_16)
#define ifBit10_16(a) ((a)&BIT10_16)
#define ifBit11_16(a) ((a)&BIT11_16)
#define ifBit12_16(a) ((a)&BIT12_16)
#define ifBit13_16(a) ((a)&BIT13_16)
#define ifBit14_16(a) ((a)&BIT14_16)
#define ifBit15_16(a) ((a)&BIT15_16)
//================ 32bits Data bit set =================
#define SetBit0_32(a) a|=BIT0_32
#define SetBit1_32(a) a|=BIT1_32
#define SetBit2_32(a) a|=BIT2_32
#define SetBit3_32(a) a|=BIT3_32
#define SetBit4_32(a) a|=BIT4_32
#define SetBit5_32(a) a|=BIT5_32
#define SetBit6_32(a) a|=BIT6_32
#define SetBit7_32(a) a|=BIT7_32
#define SetBit8_32(a) a|=BIT8_32
#define SetBit9_32(a) a|=BIT9_32
#define SetBit10_32(a) a|=BIT10_32
#define SetBit11_32(a) a|=BIT11_32
#define SetBit12_32(a) a|=BIT12_32
#define SetBit13_32(a) a|=BIT13_32
#define SetBit14_32(a) a|=BIT14_32
#define SetBit15_32(a) a|=BIT15_32
#define SetBit16_32(a) a|=BIT16_32
#define SetBit17_32(a) a|=BIT17_32
#define SetBit18_32(a) a|=BIT18_32
#define SetBit19_32(a) a|=BIT19_32
#define SetBit20_32(a) a|=BIT20_32
#define SetBit21_32(a) a|=BIT21_32
#define SetBit22_32(a) a|=BIT22_32
#define SetBit23_32(a) a|=BIT23_32
#define SetBit24_32(a) a|=BIT24_32
#define SetBit25_32(a) a|=BIT25_32
#define SetBit26_32(a) a|=BIT26_32
#define SetBit27_32(a) a|=BIT27_32
#define SetBit28_32(a) a|=BIT28_32
#define SetBit29_32(a) a|=BIT29_32
#define SetBit30_32(a) a|=BIT30_32
#define SetBit31_32(a) a|=BIT31_32
#define SetBit16(a) a|=BIT16_32
#define SetBit17(a) a|=BIT17_32
#define SetBit18(a) a|=BIT18_32
#define SetBit19(a) a|=BIT19_32
#define SetBit20(a) a|=BIT20_32
#define SetBit21(a) a|=BIT21_32
#define SetBit22(a) a|=BIT22_32
#define SetBit23(a) a|=BIT23_32
#define SetBit24(a) a|=BIT24_32
#define SetBit25(a) a|=BIT25_32
#define SetBit26(a) a|=BIT26_32
#define SetBit27(a) a|=BIT27_32
#define SetBit28(a) a|=BIT28_32
#define SetBit29(a) a|=BIT29_32
#define SetBit30(a) a|=BIT30_32
#define SetBit31(a) a|=BIT31_32
//================ 32bits Data bit clr =================
#define ClrBit0_32(a) a&=_BIT0_32
#define ClrBit1_32(a) a&=_BIT1_32
#define ClrBit2_32(a) a&=_BIT2_32
#define ClrBit3_32(a) a&=_BIT3_32
#define ClrBit4_32(a) a&=_BIT4_32
#define ClrBit5_32(a) a&=_BIT5_32
#define ClrBit6_32(a) a&=_BIT6_32
#define ClrBit7_32(a) a&=_BIT7_32
#define ClrBit8_32(a) a&=_BIT8_32
#define ClrBit9_32(a) a&=_BIT9_32
#define ClrBit10_32(a) a&=_BIT10_32
#define ClrBit11_32(a) a&=_BIT11_32
#define ClrBit12_32(a) a&=_BIT12_32
#define ClrBit13_32(a) a&=_BIT13_32
#define ClrBit14_32(a) a&=_BIT14_32
#define ClrBit15_32(a) a&=_BIT15_32
#define ClrBit16_32(a) a&=_BIT16_32
#define ClrBit17_32(a) a&=_BIT17_32
#define ClrBit18_32(a) a&=_BIT18_32
#define ClrBit19_32(a) a&=_BIT19_32
#define ClrBit20_32(a) a&=_BIT20_32
#define ClrBit21_32(a) a&=_BIT21_32
#define ClrBit22_32(a) a&=_BIT22_32
#define ClrBit23_32(a) a&=_BIT23_32
#define ClrBit24_32(a) a&=_BIT24_32
#define ClrBit25_32(a) a&=_BIT25_32
#define ClrBit26_32(a) a&=_BIT26_32
#define ClrBit27_32(a) a&=_BIT27_32
#define ClrBit28_32(a) a&=_BIT28_32
#define ClrBit29_32(a) a&=_BIT29_32
#define ClrBit30_32(a) a&=_BIT30_32
#define ClrBit31_32(a) a&=_BIT31_32
#define ClrBit16(a) a&=_BIT16_32
#define ClrBit17(a) a&=_BIT17_32
#define ClrBit18(a) a&=_BIT18_32
#define ClrBit19(a) a&=_BIT19_32
#define ClrBit20(a) a&=_BIT20_32
#define ClrBit21(a) a&=_BIT21_32
#define ClrBit22(a) a&=_BIT22_32
#define ClrBit23(a) a&=_BIT23_32
#define ClrBit24(a) a&=_BIT24_32
#define ClrBit25(a) a&=_BIT25_32
#define ClrBit26(a) a&=_BIT26_32
#define ClrBit27(a) a&=_BIT27_32
#define ClrBit28(a) a&=_BIT28_32
#define ClrBit29(a) a&=_BIT29_32
#define ClrBit30(a) a&=_BIT30_32
#define ClrBit31(a) a&=_BIT31_32
//================ 32bits Data bit Cpl =================
#define CplBit0_32(a) a^=BIT0_32
#define CplBit1_32(a) a^=BIT1_32
#define CplBit2_32(a) a^=BIT2_32
#define CplBit3_32(a) a^=BIT3_32
#define CplBit4_32(a) a^=BIT4_32
#define CplBit5_32(a) a^=BIT5_32
#define CplBit6_32(a) a^=BIT6_32
#define CplBit7_32(a) a^=BIT7_32
#define CplBit8_32(a) a^=BIT8_32
#define CplBit9_32(a) a^=BIT9_32
#define CplBit10_32(a) a^=BIT10_32
#define CplBit11_32(a) a^=BIT11_32
#define CplBit12_32(a) a^=BIT12_32
#define CplBit13_32(a) a^=BIT13_32
#define CplBit14_32(a) a^=BIT14_32
#define CplBit15_32(a) a^=BIT15_32
#define CplBit16_32(a) a^=BIT16_32
#define CplBit17_32(a) a^=BIT17_32
#define CplBit18_32(a) a^=BIT18_32
#define CplBit19_32(a) a^=BIT19_32
#define CplBit20_32(a) a^=BIT20_32
#define CplBit21_32(a) a^=BIT21_32
#define CplBit22_32(a) a^=BIT22_32
#define CplBit23_32(a) a^=BIT23_32
#define CplBit24_32(a) a^=BIT24_32
#define CplBit25_32(a) a^=BIT25_32
#define CplBit26_32(a) a^=BIT26_32
#define CplBit27_32(a) a^=BIT27_32
#define CplBit28_32(a) a^=BIT28_32
#define CplBit29_32(a) a^=BIT29_32
#define CplBit30_32(a) a^=BIT30_32
#define CplBit31_32(a) a^=BIT31_32
#define CplBit16(a) a^=BIT16_32
#define CplBit17(a) a^=BIT17_32
#define CplBit18(a) a^=BIT18_32
#define CplBit19(a) a^=BIT19_32
#define CplBit20(a) a^=BIT20_32
#define CplBit21(a) a^=BIT21_32
#define CplBit22(a) a^=BIT22_32
#define CplBit23(a) a^=BIT23_32
#define CplBit24(a) a^=BIT24_32
#define CplBit25(a) a^=BIT25_32
#define CplBit26(a) a^=BIT26_32
#define CplBit27(a) a^=BIT27_32
#define CplBit28(a) a^=BIT28_32
#define CplBit29(a) a^=BIT29_32
#define CplBit30(a) a^=BIT30_32
#define CplBit31(a) a^=BIT31_32
//================ 32bits Data bit if =================
#define ifBit0_32(a) ((a)&BIT0_32)
#define ifBit1_32(a) ((a)&BIT1_32)
#define ifBit2_32(a) ((a)&BIT2_32)
#define ifBit3_32(a) ((a)&BIT3_32)
#define ifBit4_32(a) ((a)&BIT4_32)
#define ifBit5_32(a) ((a)&BIT5_32)
#define ifBit6_32(a) ((a)&BIT6_32)
#define ifBit7_32(a) ((a)&BIT7_32)
#define ifBit8_32(a) ((a)&BIT8_32)
#define ifBit9_32(a) ((a)&BIT9_32)
#define ifBit10_32(a) ((a)&BIT10_32)
#define ifBit11_32(a) ((a)&BIT11_32)
#define ifBit12_32(a) ((a)&BIT12_32)
#define ifBit13_32(a) ((a)&BIT13_32)
#define ifBit14_32(a) ((a)&BIT14_32)
#define ifBit15_32(a) ((a)&BIT15_32)
#define ifBit16_32(a) ((a)&BIT16_32)
#define ifBit17_32(a) ((a)&BIT17_32)
#define ifBit18_32(a) ((a)&BIT18_32)
#define ifBit19_32(a) ((a)&BIT19_32)
#define ifBit20_32(a) ((a)&BIT20_32)
#define ifBit21_32(a) ((a)&BIT21_32)
#define ifBit22_32(a) ((a)&BIT22_32)
#define ifBit23_32(a) ((a)&BIT23_32)
#define ifBit24_32(a) ((a)&BIT24_32)
#define ifBit25_32(a) ((a)&BIT25_32)
#define ifBit26_32(a) ((a)&BIT26_32)
#define ifBit27_32(a) ((a)&BIT27_32)
#define ifBit28_32(a) ((a)&BIT28_32)
#define ifBit29_32(a) ((a)&BIT29_32)
#define ifBit30_32(a) ((a)&BIT30_32)
#define ifBit31_32(a) ((a)&BIT31_32)
#define ifBit16(a) ((a)&BIT16_32)
#define ifBit17(a) ((a)&BIT17_32)
#define ifBit18(a) ((a)&BIT18_32)
#define ifBit19(a) ((a)&BIT19_32)
#define ifBit20(a) ((a)&BIT20_32)
#define ifBit21(a) ((a)&BIT21_32)
#define ifBit22(a) ((a)&BIT22_32)
#define ifBit23(a) ((a)&BIT23_32)
#define ifBit24(a) ((a)&BIT24_32)
#define ifBit25(a) ((a)&BIT25_32)
#define ifBit26(a) ((a)&BIT26_32)
#define ifBit27(a) ((a)&BIT27_32)
#define ifBit28(a) ((a)&BIT28_32)
#define ifBit29(a) ((a)&BIT29_32)
#define ifBit30(a) ((a)&BIT30_32)
#define ifBit31(a) ((a)&BIT31_32)
//=====================================================================
#define BitSet(a,b) a|=(0x0001<<(b)) //设置某个变量的某个位
#define BitClr(a,b) a&=(~(0x0001<<(b)))
#define BitCpl(a,b) a^=(0x0001<<(b))
#define Bitif(a,b) (((a)>>b)&0x0001)
#define min(a,b) (((a)<(b))?(a):(b))
#define max(a,b) (((a)>(b))?(a):(b))
#define Max_Min(a,b) (((a)<(b))?((b)-(a)):((a)-(b)))
#define max_min(a,b) (((a)<(b))?((b)-(a)):((a)-(b)))
/* ---------------------------------------------------------------------------- */
/* System - Definitions */
/* ---------------------------------------------------------------------------- */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -