general.h 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*------------------------------------------------------------------------------
  2. * general.h
  3. * Copyright 2012 Xinbas Electronics Co.,Ltd.
  4. * Description:
  5. * - This file implements the follow functions:
  6. * -
  7. * modification history
  8. * --------------------
  9. * 17:54pm, 09.Aug.2012, written by Sirius
  10. * --------------------
  11. ------------------------------------------------------------------------------*/
  12. #ifndef GENERAL_H
  13. #define GENERAL_H
  14. //==============================================================
  15. /*------------------------------------------------------------------------------
  16. * I N C L U D E
  17. *------------------------------------------------------------------------------*/
  18. //--------------------------------------------------------------
  19. // chip internal command definitions
  20. //--------------------------------------------------------------
  21. //#define enableInterrupts() {_asm("rim\n");} /* enable interrupts */
  22. //#define disableInterrupts() {_asm("sim\n");} /* disable interrupts */
  23. //#define rim() {_asm("rim\n");} /* enable interrupts */
  24. //#define sim() {_asm("sim\n");} /* disable interrupts */
  25. //#define nop() {_asm("nop\n");} /* No Operation */
  26. //#define trap() {_asm("trap\n");} /* Trap (soft IT) */
  27. //#define wfi() {_asm("wfi\n");} /* Wait For Interrupt */
  28. //#define halt() {_asm("halt\n");} /* Halt */
  29. //--------------------------------------------------------------
  30. // type definitions
  31. //--------------------------------------------------------------
  32. typedef char C08; /* 8 bit character */
  33. typedef signed char S08; /* signed 8 bit integer */
  34. typedef signed short S16; /* signed 16 bit integer */
  35. typedef signed int S32; /* signed 32 bit integer */
  36. typedef unsigned char U08; /* unsigned 8 bit integer */
  37. typedef unsigned short U16; /* unsigned 16 bit integer */
  38. typedef unsigned int U32; /* unsigned 32 bit integer */
  39. typedef float F32; /* 32 bit floating-point number */
  40. typedef volatile unsigned int VU32;
  41. typedef volatile unsigned short VU16;
  42. typedef volatile unsigned char VU08;
  43. typedef void (*fp_prm) (U16 prm); /* pointer to function with prm */
  44. typedef void (*fp_void)(void); /* pointer to function without prm */
  45. //--- boolean types
  46. typedef int BOOL; /* boolean types */
  47. //--------------------------------------------------------------
  48. // frequently used names
  49. //--------------------------------------------------------------
  50. #define TRUE (1==1)
  51. #define FALSE (1!=1)
  52. #ifndef NULL
  53. #define NULL ((void *)0) /* NULL setting */
  54. #endif
  55. //--------------------------------------------------------------
  56. // MACRO definitions
  57. //--------------------------------------------------------------
  58. #define HI_NIBLE(value) (U08)(((U08)(value)) >> 4)
  59. #define LO_NIBLE(value) (U08)(((U08)(value)) & 0x0F)
  60. #define HI_BYTE(value) (U08)((value) >> 8)
  61. #define LO_BYTE(value) (U08)(value)
  62. #define TO_WORD(a,b) (U16)(((U16)(a) << 8) + (b))
  63. #define HI_WORD(value) (U16)((value) >> 16)
  64. #define LO_WORD(value) (U16)(value)
  65. //--------------------------------------------------------------
  66. // Handling bits
  67. //--------------------------------------------------------------
  68. #define SetBit(VAR,Place) ( (VAR) |= (U08)((U08)1<<(U08)(Place)) )
  69. #define ClrBit(VAR,Place) ( (VAR) &= (U08)((U08)((U08)1<<(U08)(Place))^(U08)255) )
  70. #define ChgBit(VAR,Place) ( (VAR) ^= (U08)((U08)1<<(U08)(Place)) )
  71. #define ValBit(VAR,Place) ((U08)(VAR) & (U08)((U08)1<<(U08)(Place)))
  72. //==============================================================
  73. #endif
  74. // End Of File
  75. //==============================================================