Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of a4998 by
a4988.cpp
- Committer:
- glintligo
- Date:
- 2018-07-17
- Revision:
- 3:9e9f3cd7fff0
- Parent:
- 2:57c57267b1da
File content as of revision 3:9e9f3cd7fff0:
#include "a4988.h" #include "mbed.h" Stepper::Stepper(PinName _en, PinName _stepPin, PinName _direction) : en(_en), stepPin(_stepPin), direction(_direction) { } /** * 转动特定脉冲 * @param dir [运动方向] * @param frequency [脉冲周期] * @param _remain [脉冲个数] */ void Stepper::step(int dir, int frequency, volatile int _remain) { if (dir == 1) { direction = 0; } else if (dir == 0) { direction = 1; } else { return; } remain = _remain; step_ticker.attach(callback(this, &Stepper::step_control), 0.5 / frequency); } /** * 启动步进电机 */ void Stepper::enable() { en = 0; } /** * 关闭步进电机 */ void Stepper::disable() { en = 1; } /** * 步进电机控制程序 */ void Stepper::step_control() { if (remain <= 0) { step_ticker.detach(); return; } if (stepPin) { stepPin = 0; //STEP 1->0 remain--; } else { stepPin = 1; //STEP 0->1 } } /** * 一直转 * @param dir [运动方向] * @param frequency [脉冲周期] */ void Stepper::longrun(int dir, int frequency) { if (dir == 1) { direction = 0; } else if (dir == 0) { direction = 1; } else { return; } step_ticker.attach(callback(this, &Stepper::run_control), 0.5 / frequency); } /** * 一直转运动函数 */ void Stepper::run_control() { if (stepPin) { stepPin = 0; //STEP 1->0 remain--; } else { stepPin = 1; //STEP 0->1 } } /** * 停止一直转 */ void Stepper::stoprun() { step_ticker.detach(); }