| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * @file MOTOR_STEP_C_ATY.h
- *
- * @param Project DEVICE_GENERAL_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 close loop stepper motor control for C platform
- * Based on position feedback from encoder (e.g. MT6816)
- *
- * @version
- * - 1_00_260109 > ATY
- * -# Preliminary version
- ********************************************************************************
- */
- #ifndef __MOTOR_STEP_C_ATY_H
- #define __MOTOR_STEP_C_ATY_H
- #include "INCLUDE_ATY.h"
- /******************************* For user *************************************/
- /******************************************************************************/
- struct MOTOR_STEP_C_ATY_Dev{
- uint8_t (*enSet)(uint8_t en);
- uint8_t (*dirSet)(uint8_t dir);
- void (*pwmSet)(float frequency, float dutycycle);
- void (*pwmSetCount)(float frequency, float dutycycle, uint16_t step);
- uint8_t mode;
- uint8_t enable;
- uint8_t direction;
- uint16_t stepCount;
- float frequency; // Hz
- float dutyCycle; // 0-100f
- float speed; // rpm
- uint8_t autoPower;
- uint8_t forbidReverseCorrection;
- /* if used for flow control, fix over steps may lead
- no effect or bad effect, set this to 1 to forbid motor
- reverse */
- uint8_t positionFixFlag;
- float startAngle;
- float targetAngle;
- uint8_t angleLock;
- uint16_t cycleSpace; // in ms
- uint16_t fullSteps; // steps per revolution, 360 / 1.8 degree = 200 steps
- uint8_t microstepping; // 1/8 = 8, 1/16, 1/32, 1/64, 1/128, 1/256
- uint8_t lock;
- };
- #define MOTOR_STEP_C_MODE_POST_MOTION 0x00 // post-Motion Correction
- #define MOTOR_STEP_C_MODE_NOCOUNT 0x01 // continuous mode - run continuously
- #define MOTOR_STEP_C_MODE_POSITION_CC 0x02 // position Closed-Loop Control
- #define MOTOR_STEP_C_MODE_ANGLE_LOCK 0x03 // angle lock
- uint8_t MSC_Cycle(struct MOTOR_STEP_C_ATY_Dev* dev,
- uint8_t mode, uint8_t enable, uint8_t direction,
- uint16_t stepCount,
- float frequency, float dutyCycle, float speed,
- float currentAngle, float targetAngle);
- #endif /* __MOTOR_STEP_C_ATY_H */
- /******************************** End Of File *********************************/
|