www.pudn.com > f2812_uart.rar > 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