/*------------------------------------------------------------------------------ * general.h * Copyright 2012 Xinbas Electronics Co.,Ltd. * Description: * - This file implements the follow functions: * - * modification history * -------------------- * 17:54pm, 09.Aug.2012, written by Sirius * -------------------- ------------------------------------------------------------------------------*/ #ifndef GENERAL_H #define GENERAL_H //============================================================== /*------------------------------------------------------------------------------ * I N C L U D E *------------------------------------------------------------------------------*/ //-------------------------------------------------------------- // chip internal command definitions //-------------------------------------------------------------- //#define enableInterrupts() {_asm("rim\n");} /* enable interrupts */ //#define disableInterrupts() {_asm("sim\n");} /* disable interrupts */ //#define rim() {_asm("rim\n");} /* enable interrupts */ //#define sim() {_asm("sim\n");} /* disable interrupts */ //#define nop() {_asm("nop\n");} /* No Operation */ //#define trap() {_asm("trap\n");} /* Trap (soft IT) */ //#define wfi() {_asm("wfi\n");} /* Wait For Interrupt */ //#define halt() {_asm("halt\n");} /* Halt */ //-------------------------------------------------------------- // type definitions //-------------------------------------------------------------- typedef char C08; /* 8 bit character */ typedef signed char S08; /* signed 8 bit integer */ typedef signed short S16; /* signed 16 bit integer */ typedef signed int S32; /* signed 32 bit integer */ typedef unsigned char U08; /* unsigned 8 bit integer */ typedef unsigned short U16; /* unsigned 16 bit integer */ typedef unsigned int U32; /* unsigned 32 bit integer */ typedef float F32; /* 32 bit floating-point number */ typedef volatile unsigned int VU32; typedef volatile unsigned short VU16; typedef volatile unsigned char VU08; typedef void (*fp_prm) (U16 prm); /* pointer to function with prm */ typedef void (*fp_void)(void); /* pointer to function without prm */ //--- boolean types typedef int BOOL; /* boolean types */ //-------------------------------------------------------------- // frequently used names //-------------------------------------------------------------- #define TRUE (1==1) #define FALSE (1!=1) #ifndef NULL #define NULL ((void *)0) /* NULL setting */ #endif //-------------------------------------------------------------- // MACRO definitions //-------------------------------------------------------------- #define HI_NIBLE(value) (U08)(((U08)(value)) >> 4) #define LO_NIBLE(value) (U08)(((U08)(value)) & 0x0F) #define HI_BYTE(value) (U08)((value) >> 8) #define LO_BYTE(value) (U08)(value) #define TO_WORD(a,b) (U16)(((U16)(a) << 8) + (b)) #define HI_WORD(value) (U16)((value) >> 16) #define LO_WORD(value) (U16)(value) //-------------------------------------------------------------- // Handling bits //-------------------------------------------------------------- #define SetBit(VAR,Place) ( (VAR) |= (U08)((U08)1<<(U08)(Place)) ) #define ClrBit(VAR,Place) ( (VAR) &= (U08)((U08)((U08)1<<(U08)(Place))^(U08)255) ) #define ChgBit(VAR,Place) ( (VAR) ^= (U08)((U08)1<<(U08)(Place)) ) #define ValBit(VAR,Place) ((U08)(VAR) & (U08)((U08)1<<(U08)(Place))) //============================================================== #endif // End Of File //==============================================================