MODBUS_LOW_ATY.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * @file MODBUS_LOW_ATY.h
  3. *
  4. * @param Project DEVICE_GENERAL_ATY_LIB
  5. *
  6. * @author ATY
  7. *
  8. * @copyright
  9. * - Copyright 2017 - 2026 MZ-ATY
  10. * - This code follows:
  11. * - MZ-ATY Various Contents Joint Statement -
  12. * <a href="https://mengze.top/MZ-ATY_VCJS">
  13. * https://mengze.top/MZ-ATY_VCJS</a>
  14. * - CC 4.0 BY-NC-SA -
  15. * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  16. * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
  17. * - Your use will be deemed to have accepted the terms of this statement.
  18. *
  19. * @brief functions of modbus for all device
  20. *
  21. * @version
  22. * - 1_01_221029 > ATY
  23. * -# Preliminary version, first Release
  24. ********************************************************************************
  25. */
  26. #ifndef __MODBUS_LOW_ATY_H
  27. #define __MODBUS_LOW_ATY_H
  28. #include "INCLUDE_ATY.h"
  29. #include "ALGO_CRC_ATY.h"
  30. #include "HW_UART_ATY.h"
  31. /******************************* For user *************************************/
  32. // #define MODBUS_FLOAT_MODE
  33. #define MODBUS_FLOAT_CODE_MODE
  34. /* define sample */
  35. // #include "HW_UART_ATY.h"
  36. // #define MODBUS_REG_HOLDING_SIZE 60 // set --model-large at 51
  37. // #include "MODBUS_LOW_ATY.h"
  38. // #define mbG mbRegHoding
  39. #include "main.h"
  40. #ifndef MODBUS_REG_HOLDING_SIZE
  41. #define MODBUS_REG_HOLDING_SIZE 50 // set --model-large at 51
  42. #endif
  43. #ifndef MODBUS_ADDR
  44. #define MODBUS_ADDR 0x01
  45. #endif
  46. // #ifdef __ATY_IS_8051_COMPILER // move to INCLUDE.h
  47. // #define BIG_ENDIAN // chip in big endian mode
  48. // #endif
  49. /******************************************************************************/
  50. #define MODBUS_FUNC_READ_COILS 0x01
  51. #define MODBUS_FUNC_READ_DISCRETE_INPUTS 0x02
  52. #define MODBUS_FUNC_READ_HOLDING_REGISTERS 0x03
  53. #define MODBUS_FUNC_READ_INPUT_REGISTERS 0x04
  54. #define MODBUS_FUNC_WRITE_SINGLE_COIL 0x05
  55. #define MODBUS_FUNC_WRITE_SINGLE_HOLDING_REGISTERS 0x06
  56. #define MODBUS_FUNC_WRITE_MULTY_HOLDING_REGISTERS 0x10
  57. #if defined (MODBUS_FLOAT_MODE) || defined(MODBUS_FLOAT_CODE_MODE)
  58. #ifndef MUL_FLOAT
  59. #define MUL_FLOAT 1000
  60. #endif /* MUL_FLOAT */
  61. extern __XDATA float mbRegHoding[MODBUS_REG_HOLDING_SIZE];
  62. #else
  63. extern uint16_t mbRegHoding[MODBUS_REG_HOLDING_SIZE];
  64. #endif /* MODBUS_FLOAT_MODE */
  65. void Modbus_Process(uint8_t* buf, uint8_t len);
  66. #endif /* __MODBUS_LOW_ATY_H */
  67. /******************************** End Of File *********************************/