MT6816_ATY.h.bak 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * @file MT6816_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 MT6816 magnetic encoder for C platform
  20. *
  21. * @version
  22. * - 1_01_251222 > ATY
  23. * -# Preliminary version, first Release
  24. ********************************************************************************
  25. */
  26. #ifndef __MT6816_ATY_H
  27. #define __MT6816_ATY_H
  28. #include "INCLUDE_ATY.h"
  29. /******************************* For user *************************************/
  30. /******************************************************************************/
  31. // MT6816 Register Addresses
  32. #define MT6816_REG_ANGLE_13_6 0x03
  33. #define MT6816_REG_ANGLE_5_0 0x04
  34. #define MT6816_REG_ANGLE_OVER_SPEED 0x05
  35. #define MT6816_PARITY_CHECK_MASK 0x01
  36. #define MT6816_NO_MAG_WARNING_MASK 0x02
  37. #define MT6816_OVER_SPEED_MASK 0x08
  38. struct MT6816_ATY_Dev{
  39. void (*nssSet)(uint8_t level);
  40. uint8_t (*spiProcess)(uint8_t* data_t, uint16_t len, uint8_t rw);
  41. uint16_t angleValue;
  42. float angle;
  43. uint8_t error;
  44. uint16_t zeroPoint;
  45. uint8_t lock;
  46. };
  47. uint8_t MT6816_ReadAngleBase(struct MT6816_ATY_Dev* dev);
  48. uint8_t MT6816_ReadAngleFull(struct MT6816_ATY_Dev* dev);
  49. uint16_t MT6816_SetZeroPoint(struct MT6816_ATY_Dev* dev);
  50. float MT6816_CalculateAngle(struct MT6816_ATY_Dev* dev, uint16_t angle);
  51. float MT6816_CalculateAngleReal(struct MT6816_ATY_Dev* dev, uint16_t angle);
  52. uint8_t MT6816_ParityCheck(struct MT6816_ATY_Dev* dev, uint16_t data);
  53. uint8_t MT6816_ErrorCheck(struct MT6816_ATY_Dev* dev, uint8_t* data);
  54. #endif /* __MT6816_ATY_H */
  55. /******************************** End Of File *********************************/