Expansion SW library to control high power stepper motor(s) using IHM03A1 expansion board(s) with Powerstep01 driver.

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   IHM03A1_ExampleFor1Motor HelloWorld_IHM03A1 IHM03A1_ExampleFor3Motors KYPHOS_Stepper_Motor_Control

Fork of X_NUCLEO_IHM03A1 by ST Expansion SW Team

Motor Control Library

Library to handle the X-NUCLEO-IHM03A1 Motor Control Expansion Board based on the Powerstep01 component.

It features the:

  • read and write of Powerstep01 registers
  • Nucleo and expansion board configuration (GPIOs, PWMs, IRQs, etc.)
  • Powerstep01 application commands handling
  • FLAG and BUSY interrupt handling (alarm reporting)
  • Daisy chain handling

The API allows to easily:

  • perform various positioning, moves and stops
  • get/set or monitor the motor positions
  • set home position and mark another position
  • get/set minimum and maximum speed
  • get current speed
  • get/set acceleration and deceleration
  • get/set the step mode (up to 1/128)
  • get/set the control method
  • get/set parameters for voltage mode driving
  • get/set parameters for current mode driving
  • get/set parameters for gate driving
  • configure various protections such as overcurrent detection
  • enable/disable alarms
  • handle step-clock
  • get system status

Daisy-Chain Configuration

The IHM03A1 board can be stacked up to three times so that the Powerstep01 components will be connected in daisy-chain configuration. For this purpose, some resistors must be correctly connected on the boards as depicted here below:

/media/uploads/nucleosam/driving1steppermotor.png /media/uploads/nucleosam/driving2steppermotors.png /media/uploads/nucleosam/driving3steppermotors.png

Platform compatibility

Compatible platforms have been tested with the default configuration provided by the HelloWorld_IHM03A1 example.

Committer:
nucleosam
Date:
Tue Apr 05 15:18:56 2016 +0000
Revision:
0:00a3c3f5a8f0
Child:
1:8ce2a5d6fbf8
Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucleosam 0:00a3c3f5a8f0 1 /**
nucleosam 0:00a3c3f5a8f0 2 ******************************************************************************
nucleosam 0:00a3c3f5a8f0 3 * @file StepperMotor_class.h
nucleosam 0:00a3c3f5a8f0 4 * @author IPC Rennes
nucleosam 0:00a3c3f5a8f0 5 * @version V1.2.0
nucleosam 0:00a3c3f5a8f0 6 * @date March 18th, 2016
nucleosam 0:00a3c3f5a8f0 7 * @brief This file contains the abstract class describing the interface of a
nucleosam 0:00a3c3f5a8f0 8 * stepper-motor component.
nucleosam 0:00a3c3f5a8f0 9 ******************************************************************************
nucleosam 0:00a3c3f5a8f0 10 * @attention
nucleosam 0:00a3c3f5a8f0 11 *
nucleosam 0:00a3c3f5a8f0 12 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
nucleosam 0:00a3c3f5a8f0 13 *
nucleosam 0:00a3c3f5a8f0 14 * Redistribution and use in source and binary forms, with or without modification,
nucleosam 0:00a3c3f5a8f0 15 * are permitted provided that the following conditions are met:
nucleosam 0:00a3c3f5a8f0 16 * 1. Redistributions of source code must retain the above copyright notice,
nucleosam 0:00a3c3f5a8f0 17 * this list of conditions and the following disclaimer.
nucleosam 0:00a3c3f5a8f0 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
nucleosam 0:00a3c3f5a8f0 19 * this list of conditions and the following disclaimer in the documentation
nucleosam 0:00a3c3f5a8f0 20 * and/or other materials provided with the distribution.
nucleosam 0:00a3c3f5a8f0 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
nucleosam 0:00a3c3f5a8f0 22 * may be used to endorse or promote products derived from this software
nucleosam 0:00a3c3f5a8f0 23 * without specific prior written permission.
nucleosam 0:00a3c3f5a8f0 24 *
nucleosam 0:00a3c3f5a8f0 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
nucleosam 0:00a3c3f5a8f0 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
nucleosam 0:00a3c3f5a8f0 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
nucleosam 0:00a3c3f5a8f0 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
nucleosam 0:00a3c3f5a8f0 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
nucleosam 0:00a3c3f5a8f0 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
nucleosam 0:00a3c3f5a8f0 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
nucleosam 0:00a3c3f5a8f0 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
nucleosam 0:00a3c3f5a8f0 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
nucleosam 0:00a3c3f5a8f0 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
nucleosam 0:00a3c3f5a8f0 35 *
nucleosam 0:00a3c3f5a8f0 36 ******************************************************************************
nucleosam 0:00a3c3f5a8f0 37 */
nucleosam 0:00a3c3f5a8f0 38
nucleosam 0:00a3c3f5a8f0 39
nucleosam 0:00a3c3f5a8f0 40 /* Define to prevent from recursive inclusion --------------------------------*/
nucleosam 0:00a3c3f5a8f0 41
nucleosam 0:00a3c3f5a8f0 42 #ifndef __STEPPERMOTOR_CLASS_H
nucleosam 0:00a3c3f5a8f0 43 #define __STEPPERMOTOR_CLASS_H
nucleosam 0:00a3c3f5a8f0 44
nucleosam 0:00a3c3f5a8f0 45
nucleosam 0:00a3c3f5a8f0 46 /* Includes ------------------------------------------------------------------*/
nucleosam 0:00a3c3f5a8f0 47
nucleosam 0:00a3c3f5a8f0 48 #include <Component_class.h>
nucleosam 0:00a3c3f5a8f0 49
nucleosam 0:00a3c3f5a8f0 50
nucleosam 0:00a3c3f5a8f0 51 /* Classes ------------------------------------------------------------------*/
nucleosam 0:00a3c3f5a8f0 52
nucleosam 0:00a3c3f5a8f0 53 /** An abstract class for StepperMotor components.
nucleosam 0:00a3c3f5a8f0 54 */
nucleosam 0:00a3c3f5a8f0 55 class StepperMotor : public Component
nucleosam 0:00a3c3f5a8f0 56 {
nucleosam 0:00a3c3f5a8f0 57 public:
nucleosam 0:00a3c3f5a8f0 58 /**
nucleosam 0:00a3c3f5a8f0 59 * @brief Rotation modes.
nucleosam 0:00a3c3f5a8f0 60 */
nucleosam 0:00a3c3f5a8f0 61 typedef enum
nucleosam 0:00a3c3f5a8f0 62 {
nucleosam 0:00a3c3f5a8f0 63 BWD = 0, /* Backward. */
nucleosam 0:00a3c3f5a8f0 64 FWD = 1 /* Forward. */
nucleosam 0:00a3c3f5a8f0 65 } direction_t;
nucleosam 0:00a3c3f5a8f0 66
nucleosam 0:00a3c3f5a8f0 67 /**
nucleosam 0:00a3c3f5a8f0 68 * @brief Attaching an error handler.
nucleosam 0:00a3c3f5a8f0 69 * @param fptr An error handler.
nucleosam 0:00a3c3f5a8f0 70 * @retval None.
nucleosam 0:00a3c3f5a8f0 71 */
nucleosam 0:00a3c3f5a8f0 72 virtual void AttachErrorHandler(void (*fptr)(uint16_t error)) = 0;
nucleosam 0:00a3c3f5a8f0 73
nucleosam 0:00a3c3f5a8f0 74 /**
nucleosam 0:00a3c3f5a8f0 75 * @brief Getting the status.
nucleosam 0:00a3c3f5a8f0 76 * @param None.
nucleosam 0:00a3c3f5a8f0 77 * @retval The status.
nucleosam 0:00a3c3f5a8f0 78 */
nucleosam 0:00a3c3f5a8f0 79 virtual unsigned int GetStatus(void) = 0;
nucleosam 0:00a3c3f5a8f0 80
nucleosam 0:00a3c3f5a8f0 81 /**
nucleosam 0:00a3c3f5a8f0 82 * @brief Getting a parameter in the register format
nucleosam 0:00a3c3f5a8f0 83 * @param parameter The parameter's identifier (or its register address).
nucleosam 0:00a3c3f5a8f0 84 * @retval The parameter's value in the register format (digital value)
nucleosam 0:00a3c3f5a8f0 85 */
nucleosam 0:00a3c3f5a8f0 86 virtual unsigned int GetParameter(unsigned int parameter) = 0;
nucleosam 0:00a3c3f5a8f0 87
nucleosam 0:00a3c3f5a8f0 88 /**
nucleosam 0:00a3c3f5a8f0 89 * @brief Getting a parameter value in float format
nucleosam 0:00a3c3f5a8f0 90 * @param parameter The parameter's identifier (or its register address).
nucleosam 0:00a3c3f5a8f0 91 * @retval The parameter's value in float format (analog value)
nucleosam 0:00a3c3f5a8f0 92 */
nucleosam 0:00a3c3f5a8f0 93 virtual float GetAnalogValue(unsigned int parameter) = 0;
nucleosam 0:00a3c3f5a8f0 94
nucleosam 0:00a3c3f5a8f0 95 /**
nucleosam 0:00a3c3f5a8f0 96 * @brief Getting the position.
nucleosam 0:00a3c3f5a8f0 97 * @param None.
nucleosam 0:00a3c3f5a8f0 98 * @retval The position.
nucleosam 0:00a3c3f5a8f0 99 */
nucleosam 0:00a3c3f5a8f0 100 virtual signed int GetPosition(void) = 0;
nucleosam 0:00a3c3f5a8f0 101
nucleosam 0:00a3c3f5a8f0 102 /**
nucleosam 0:00a3c3f5a8f0 103 * @brief Getting the marked position.
nucleosam 0:00a3c3f5a8f0 104 * @param None.
nucleosam 0:00a3c3f5a8f0 105 * @retval The marked position.
nucleosam 0:00a3c3f5a8f0 106 */
nucleosam 0:00a3c3f5a8f0 107 virtual signed int GetMark(void) = 0;
nucleosam 0:00a3c3f5a8f0 108
nucleosam 0:00a3c3f5a8f0 109 /**
nucleosam 0:00a3c3f5a8f0 110 * @brief Getting the current speed in pps.
nucleosam 0:00a3c3f5a8f0 111 * @param None.
nucleosam 0:00a3c3f5a8f0 112 * @retval The current speed in pps.
nucleosam 0:00a3c3f5a8f0 113 */
nucleosam 0:00a3c3f5a8f0 114 virtual unsigned int GetSpeed(void) = 0;
nucleosam 0:00a3c3f5a8f0 115
nucleosam 0:00a3c3f5a8f0 116 /**
nucleosam 0:00a3c3f5a8f0 117 * @brief Getting the maximum speed in pps.
nucleosam 0:00a3c3f5a8f0 118 * @param None.
nucleosam 0:00a3c3f5a8f0 119 * @retval The maximum speed in pps.
nucleosam 0:00a3c3f5a8f0 120 */
nucleosam 0:00a3c3f5a8f0 121 virtual unsigned int GetMaxSpeed(void) = 0;
nucleosam 0:00a3c3f5a8f0 122
nucleosam 0:00a3c3f5a8f0 123 /**
nucleosam 0:00a3c3f5a8f0 124 * @brief Getting the minimum speed in pps.
nucleosam 0:00a3c3f5a8f0 125 * @param None.
nucleosam 0:00a3c3f5a8f0 126 * @retval The minimum speed in pps.
nucleosam 0:00a3c3f5a8f0 127 */
nucleosam 0:00a3c3f5a8f0 128 virtual unsigned int GetMinSpeed(void) = 0;
nucleosam 0:00a3c3f5a8f0 129
nucleosam 0:00a3c3f5a8f0 130 /**
nucleosam 0:00a3c3f5a8f0 131 * @brief Getting the acceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 132 * @param None.
nucleosam 0:00a3c3f5a8f0 133 * @retval The acceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 134 */
nucleosam 0:00a3c3f5a8f0 135 virtual unsigned int GetAcceleration(void) = 0;
nucleosam 0:00a3c3f5a8f0 136
nucleosam 0:00a3c3f5a8f0 137 /**
nucleosam 0:00a3c3f5a8f0 138 * @brief Getting the deceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 139 * @param None.
nucleosam 0:00a3c3f5a8f0 140 * @retval The deceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 141 */
nucleosam 0:00a3c3f5a8f0 142 virtual unsigned int GetDeceleration(void) = 0;
nucleosam 0:00a3c3f5a8f0 143
nucleosam 0:00a3c3f5a8f0 144 /**
nucleosam 0:00a3c3f5a8f0 145 * @brief Getting the direction of rotation.
nucleosam 0:00a3c3f5a8f0 146 * @param None.
nucleosam 0:00a3c3f5a8f0 147 * @retval The direction of rotation.
nucleosam 0:00a3c3f5a8f0 148 */
nucleosam 0:00a3c3f5a8f0 149 virtual direction_t GetDirection(void) = 0;
nucleosam 0:00a3c3f5a8f0 150
nucleosam 0:00a3c3f5a8f0 151 /**
nucleosam 0:00a3c3f5a8f0 152 * @brief Setting a parameter.
nucleosam 0:00a3c3f5a8f0 153 * @param parameter The parameter's identifier (or its register address).
nucleosam 0:00a3c3f5a8f0 154 * @param value The parameter's value in the register format (digital value)
nucleosam 0:00a3c3f5a8f0 155 * @retval None.
nucleosam 0:00a3c3f5a8f0 156 */
nucleosam 0:00a3c3f5a8f0 157 virtual void SetParameter(unsigned int parameter, unsigned int value) = 0;
nucleosam 0:00a3c3f5a8f0 158
nucleosam 0:00a3c3f5a8f0 159 /**
nucleosam 0:00a3c3f5a8f0 160 * @brief Setting a parameter.
nucleosam 0:00a3c3f5a8f0 161 * @param parameter The parameter's identifier (or its register address).
nucleosam 0:00a3c3f5a8f0 162 * @param value The parameter's value in a float format (analog value)
nucleosam 0:00a3c3f5a8f0 163 * @retval None.
nucleosam 0:00a3c3f5a8f0 164 */
nucleosam 0:00a3c3f5a8f0 165 virtual bool SetAnalogValue(unsigned int parameter, float value) = 0;
nucleosam 0:00a3c3f5a8f0 166
nucleosam 0:00a3c3f5a8f0 167 /**
nucleosam 0:00a3c3f5a8f0 168 * @brief Setting the current position to be the home position.
nucleosam 0:00a3c3f5a8f0 169 * @param None.
nucleosam 0:00a3c3f5a8f0 170 * @retval None.
nucleosam 0:00a3c3f5a8f0 171 */
nucleosam 0:00a3c3f5a8f0 172 virtual void SetHome(void) = 0;
nucleosam 0:00a3c3f5a8f0 173
nucleosam 0:00a3c3f5a8f0 174 /**
nucleosam 0:00a3c3f5a8f0 175 * @brief Setting the current position to be the marked position.
nucleosam 0:00a3c3f5a8f0 176 * @param None.
nucleosam 0:00a3c3f5a8f0 177 * @retval None.
nucleosam 0:00a3c3f5a8f0 178 */
nucleosam 0:00a3c3f5a8f0 179 virtual void SetMark(void) = 0;
nucleosam 0:00a3c3f5a8f0 180
nucleosam 0:00a3c3f5a8f0 181 /**
nucleosam 0:00a3c3f5a8f0 182 * @brief Setting the maximum speed in pps.
nucleosam 0:00a3c3f5a8f0 183 * @param speed The maximum speed in pps.
nucleosam 0:00a3c3f5a8f0 184 * @retval TRUE if value is valid, FALSE otherwise.
nucleosam 0:00a3c3f5a8f0 185 */
nucleosam 0:00a3c3f5a8f0 186 virtual bool SetMaxSpeed(unsigned int speed) = 0;
nucleosam 0:00a3c3f5a8f0 187
nucleosam 0:00a3c3f5a8f0 188 /**
nucleosam 0:00a3c3f5a8f0 189 * @brief Setting the minimum speed in pps.
nucleosam 0:00a3c3f5a8f0 190 * @param speed The minimum speed in pps.
nucleosam 0:00a3c3f5a8f0 191 * @retval TRUE if value is valid, FALSE otherwise.
nucleosam 0:00a3c3f5a8f0 192 */
nucleosam 0:00a3c3f5a8f0 193 virtual bool SetMinSpeed(unsigned int speed) = 0;
nucleosam 0:00a3c3f5a8f0 194
nucleosam 0:00a3c3f5a8f0 195 /**
nucleosam 0:00a3c3f5a8f0 196 * @brief Setting the acceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 197 * @param acceleration The acceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 198 * @retval TRUE if value is valid, FALSE otherwise.
nucleosam 0:00a3c3f5a8f0 199 */
nucleosam 0:00a3c3f5a8f0 200 virtual bool SetAcceleration(unsigned int speed) = 0;
nucleosam 0:00a3c3f5a8f0 201
nucleosam 0:00a3c3f5a8f0 202 /**
nucleosam 0:00a3c3f5a8f0 203 * @brief Setting the deceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 204 * @param deceleration The deceleration in pps^2.
nucleosam 0:00a3c3f5a8f0 205 * @retval TRUE if value is valid, FALSE otherwise.
nucleosam 0:00a3c3f5a8f0 206 */
nucleosam 0:00a3c3f5a8f0 207 virtual bool SetDeceleration(unsigned int speed) = 0;
nucleosam 0:00a3c3f5a8f0 208
nucleosam 0:00a3c3f5a8f0 209 /**
nucleosam 0:00a3c3f5a8f0 210 * @brief Setting the Step Mode.
nucleosam 0:00a3c3f5a8f0 211 * @param step_mode The Step Mode.
nucleosam 0:00a3c3f5a8f0 212 * @retval None.
nucleosam 0:00a3c3f5a8f0 213 */
nucleosam 0:00a3c3f5a8f0 214 virtual void SetStepMode(motorStepMode_t step_mode) = 0;
nucleosam 0:00a3c3f5a8f0 215
nucleosam 0:00a3c3f5a8f0 216 /**
nucleosam 0:00a3c3f5a8f0 217 * @brief Going to a specified position.
nucleosam 0:00a3c3f5a8f0 218 * @param position The desired position.
nucleosam 0:00a3c3f5a8f0 219 * @retval None.
nucleosam 0:00a3c3f5a8f0 220 */
nucleosam 0:00a3c3f5a8f0 221 virtual void GoTo(signed int position) = 0;
nucleosam 0:00a3c3f5a8f0 222
nucleosam 0:00a3c3f5a8f0 223 /**
nucleosam 0:00a3c3f5a8f0 224 * @brief Going to the home position.
nucleosam 0:00a3c3f5a8f0 225 * @param None.
nucleosam 0:00a3c3f5a8f0 226 * @retval None.
nucleosam 0:00a3c3f5a8f0 227 */
nucleosam 0:00a3c3f5a8f0 228 virtual void GoHome(void) = 0;
nucleosam 0:00a3c3f5a8f0 229
nucleosam 0:00a3c3f5a8f0 230 /**
nucleosam 0:00a3c3f5a8f0 231 * @brief Going to the marked position.
nucleosam 0:00a3c3f5a8f0 232 * @param None.
nucleosam 0:00a3c3f5a8f0 233 * @retval None.
nucleosam 0:00a3c3f5a8f0 234 */
nucleosam 0:00a3c3f5a8f0 235 virtual void GoMark(void) = 0;
nucleosam 0:00a3c3f5a8f0 236
nucleosam 0:00a3c3f5a8f0 237 /**
nucleosam 0:00a3c3f5a8f0 238 * @brief Running the motor towards a specified direction.
nucleosam 0:00a3c3f5a8f0 239 * @param direction The direction of rotation.
nucleosam 0:00a3c3f5a8f0 240 * @retval None.
nucleosam 0:00a3c3f5a8f0 241 */
nucleosam 0:00a3c3f5a8f0 242 virtual void Run(direction_t direction) = 0;
nucleosam 0:00a3c3f5a8f0 243
nucleosam 0:00a3c3f5a8f0 244 /**
nucleosam 0:00a3c3f5a8f0 245 * @brief Moving the motor towards a specified direction for a certain number of steps.
nucleosam 0:00a3c3f5a8f0 246 * @param direction The direction of rotation.
nucleosam 0:00a3c3f5a8f0 247 * @param steps The desired number of steps.
nucleosam 0:00a3c3f5a8f0 248 * @retval None.
nucleosam 0:00a3c3f5a8f0 249 */
nucleosam 0:00a3c3f5a8f0 250 virtual void Move(direction_t direction, unsigned int steps) = 0;
nucleosam 0:00a3c3f5a8f0 251
nucleosam 0:00a3c3f5a8f0 252 /**
nucleosam 0:00a3c3f5a8f0 253 * @brief Stopping the motor through an immediate deceleration up to zero speed.
nucleosam 0:00a3c3f5a8f0 254 * @param None.
nucleosam 0:00a3c3f5a8f0 255 * @retval None.
nucleosam 0:00a3c3f5a8f0 256 */
nucleosam 0:00a3c3f5a8f0 257 virtual void SoftStop(void) = 0;
nucleosam 0:00a3c3f5a8f0 258
nucleosam 0:00a3c3f5a8f0 259 /**
nucleosam 0:00a3c3f5a8f0 260 * @brief Stopping the motor through an immediate infinite deceleration.
nucleosam 0:00a3c3f5a8f0 261 * @param None.
nucleosam 0:00a3c3f5a8f0 262 * @retval None.
nucleosam 0:00a3c3f5a8f0 263 */
nucleosam 0:00a3c3f5a8f0 264 virtual void HardStop(void) = 0;
nucleosam 0:00a3c3f5a8f0 265
nucleosam 0:00a3c3f5a8f0 266 /**
nucleosam 0:00a3c3f5a8f0 267 * @brief Disabling the power bridge after performing a deceleration to zero.
nucleosam 0:00a3c3f5a8f0 268 * @param None.
nucleosam 0:00a3c3f5a8f0 269 * @retval None.
nucleosam 0:00a3c3f5a8f0 270 */
nucleosam 0:00a3c3f5a8f0 271 virtual void SoftHiZ(void) = 0;
nucleosam 0:00a3c3f5a8f0 272
nucleosam 0:00a3c3f5a8f0 273 /**
nucleosam 0:00a3c3f5a8f0 274 * @brief Disabling the power bridge immediately.
nucleosam 0:00a3c3f5a8f0 275 * @param None.
nucleosam 0:00a3c3f5a8f0 276 * @retval None.
nucleosam 0:00a3c3f5a8f0 277 */
nucleosam 0:00a3c3f5a8f0 278 virtual void HardHiZ(void) = 0;
nucleosam 0:00a3c3f5a8f0 279
nucleosam 0:00a3c3f5a8f0 280 /**
nucleosam 0:00a3c3f5a8f0 281 * @brief Waiting while the motor is active.
nucleosam 0:00a3c3f5a8f0 282 * @param None.
nucleosam 0:00a3c3f5a8f0 283 * @retval None.
nucleosam 0:00a3c3f5a8f0 284 */
nucleosam 0:00a3c3f5a8f0 285 virtual void WaitWhileActive(void) = 0;
nucleosam 0:00a3c3f5a8f0 286
nucleosam 0:00a3c3f5a8f0 287 };
nucleosam 0:00a3c3f5a8f0 288
nucleosam 0:00a3c3f5a8f0 289 #endif /* __STEPPERMOTOR_CLASS_H */
nucleosam 0:00a3c3f5a8f0 290
nucleosam 0:00a3c3f5a8f0 291 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/