MyMach.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /************************************************************************
  2. * ---- 居加居 ----
  3. * 文件名: My_Mach.h
  4. * 编写人员: Kinve JQ
  5. * 说明:
  6. * 版本: V0.1
  7. * 编写日期: 2018-09-30
  8. * 程序维护:
  9. * 维护记录:
  10. * 2018-09-30.Kinve:1.创建文件
  11. * 免责声明:
  12. * (c) Author Kinve JQ. All rights reserved.
  13. **************************************************************************/
  14. #ifndef __MY_MACH_H
  15. #define __MY_MACH_H
  16. /* 包含的头文件---------------------------------------------------------------*/
  17. #include <stdio.h>
  18. /* 类型定义 ------------------------------------------------------------------*/
  19. /* 常量定义 ------------------------------------------------------------------*/
  20. enum
  21. {
  22. A_SENDING, //发送中
  23. A_WAITTING, //等待回复
  24. A_RE_SENDING, //重发
  25. A_RES_OK, //结果:成功
  26. A_RES_ERROR, //结果:一次错误
  27. A_RES_OUTTIME, //结果:超时
  28. A_RES_ALLSTEP_OK, //结果:所有步骤都成功
  29. A_RES_DOMSG_OK, //获取DO信息OK
  30. A_MAX
  31. };
  32. /* 宏定义 --------------------------------------------------------------------*/
  33. #define max(a,b) ( ((a)>(b)) ? (a):(b) )
  34. #define min(a,b) ( ((a)>(b)) ? (b):(a) )
  35. #define ARRAY_SIZE( ARRAY ) (sizeof (ARRAY) / sizeof (ARRAY[0]))
  36. #define GetBit(dat,bit) (((dat)&(1<<(bit)))?1:0)
  37. #define SetBit(dat,bit,val) ((val)?((dat)|=(1<<(bit))):((dat)&=(~(1<<(bit)))))
  38. #define setBitMask(dat, bitMask, setval) ((dat)=(((dat)&(~(bitMask)))|((setval)&(bitMask))))
  39. #define Put16Byte(Low8Byte,Hig8Byte) (((Low8Byte&(0xFF*1UL)))|(((Hig8Byte&(0xFF*1UL)))<<8))
  40. #define GetHig8Byte(dat) (((dat*1UL)>>8)&0xFF)
  41. #define GetLow8Byte(dat) (((dat*1UL)>>0)&0xFF)
  42. typedef unsigned int uint_32 ;
  43. typedef unsigned short uint_16 ;
  44. //16位
  45. #define BSWAP_16(x) \
  46. (uint_16)((((uint_16)(x) & 0x00ff) << 8) | \
  47. (((uint_16)(x) & 0xff00) >> 8) \
  48. )
  49. //32位
  50. #define BSWAP_32(x) \
  51. (uint_32)((((uint_32)(x) & 0xff000000) >> 24) | \
  52. (((uint_32)(x) & 0x00ff0000) >> 8) | \
  53. (((uint_32)(x) & 0x0000ff00) << 8) | \
  54. (((uint_32)(x) & 0x000000ff) << 24) \
  55. )
  56. #define BinToHex(n) \
  57. ( \
  58. ((n>>21)&0x80)| \
  59. ((n>>18)&0x40)| \
  60. ((n>>15)&0x20)| \
  61. ((n>>12)&0x10)| \
  62. ((n>>9)&0x08)| \
  63. ((n>>6)&0x04)| \
  64. ((n>>3)&0x02)| \
  65. ((n)&0x01) \
  66. )
  67. #define Bin(n) BinToHex(0x##n##l)
  68. #define _STR(s) #s
  69. #define STR(s) _STR(s) // 转换宏
  70. #define _CONS(a,b) int(a##e##b)
  71. #define CONS(a,b) _CONS(a,b) // 转换宏
  72. /* 函数定义------------------------------------------------------------------ */
  73. #endif
  74. /*************** (C) COPYRIGHT Kinve JQ *******END OF FILE **************/