| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /**
- * @file MT6816_ATY.h
- *
- * @param Project DEVICE_DRIVER_ATY_LIB
- *
- * @author ATY
- *
- * @copyright
- * - Copyright 2017 - 2026 MZ-ATY
- * - This code follows:
- * - MZ-ATY Various Contents Joint Statement -
- * <a href="https://mengze.top/MZ-ATY_VCJS">
- * https://mengze.top/MZ-ATY_VCJS</a>
- * - CC 4.0 BY-NC-SA -
- * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
- * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
- * - Your use will be deemed to have accepted the terms of this statement.
- *
- * @brief functions of MT6816 magnetic encoder for C platform
- *
- * @version
- * - 1_01_251222 > ATY
- * -# Preliminary version, first Release
- ********************************************************************************
- */
- #ifndef __MT6816_ATY_H
- #define __MT6816_ATY_H
- #include "INCLUDE_ATY.h"
- /******************************* For user *************************************/
- /******************************************************************************/
- struct MT6816_ATY_Dev{
- void (*nssSet)(uint8_t level);
- uint8_t (*spiProcess)(uint8_t* data_t, uint16_t len, uint8_t rw);
- uint16_t angleValue;
- float angle;
- float angleLast;
- float angleStart;
- float angleTotal;
- uint32_t turnCount;
- uint8_t start;
- uint8_t error;
- uint16_t zeroPoint;
- uint8_t angleReverseDir;
- uint8_t lock;
- };
- // MT6816 Register Addresses
- #define MT6816_REG_ANGLE_13_6 0x03
- #define MT6816_REG_ANGLE_5_0 0x04
- #define MT6816_REG_ANGLE_OVER_SPEED 0x05
- #define MT6816_PARITY_CHECK_MASK 0x01
- #define MT6816_NO_MAG_WARNING_MASK 0x02
- #define MT6816_OVER_SPEED_MASK 0x08
- uint8_t MT6816_ParityCheck(struct MT6816_ATY_Dev* dev, uint16_t data);
- uint8_t MT6816_ErrorCheck(struct MT6816_ATY_Dev* dev, uint8_t* data);
- uint8_t MT6816_ReadAngleBase(struct MT6816_ATY_Dev* dev);
- uint8_t MT6816_ReadAngleFull(struct MT6816_ATY_Dev* dev);
- uint16_t MT6816_SetZeroPoint(struct MT6816_ATY_Dev* dev);
- float MT6816_CalculateAngle(struct MT6816_ATY_Dev* dev, uint16_t angle);
- float MT6816_CalculateAngleReal(struct MT6816_ATY_Dev* dev, uint16_t angle);
- uint32_t MT6816_TurnCount(struct MT6816_ATY_Dev* dev);
- uint32_t MT6816_TurnCountOffset(struct MT6816_ATY_Dev* dev);
- void MT6816_TurnCountOffsetStart(struct MT6816_ATY_Dev* dev, uint8_t dir);
- void MT6816_TurnCountOffsetStop(struct MT6816_ATY_Dev* dev);
- #endif /* __MT6816_ATY_H */
- /******************************** End Of File *********************************/
|