ddd

Fork of stepper by Biy Bill

Committer:
glintligo
Date:
Sun Jun 03 10:17:37 2018 +0000
Revision:
2:e9699816ff84
Parent:
1:88f743f3e7a7
gdfs;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
glintligo 0:173936452e07 1 #include "a4988.h"
glintligo 0:173936452e07 2 #include "mbed.h"
glintligo 2:e9699816ff84 3 extern int stepok;
glintligo 0:173936452e07 4 Stepper::Stepper(PinName _en, PinName _stepPin, PinName _direction):en(_en),
glintligo 0:173936452e07 5 stepPin(_stepPin),
glintligo 0:173936452e07 6 direction(_direction)
glintligo 0:173936452e07 7 {
glintligo 0:173936452e07 8
glintligo 0:173936452e07 9 }
Bilybill 1:88f743f3e7a7 10 void Stepper::step(int dir, long long int frequency ,volatile long long int _remain)
glintligo 0:173936452e07 11 {
glintligo 0:173936452e07 12 //fun = &Stepper::step_control;
glintligo 0:173936452e07 13 if (dir == 1) {
glintligo 0:173936452e07 14 direction = 0;
glintligo 0:173936452e07 15 } else if (dir == 0) {
glintligo 0:173936452e07 16 direction = 1;
glintligo 0:173936452e07 17 }
glintligo 0:173936452e07 18 remain = _remain;
Bilybill 1:88f743f3e7a7 19 step_ticker.attach(this, &Stepper::step_control,0.5/frequency);
glintligo 0:173936452e07 20 }
glintligo 0:173936452e07 21
glintligo 0:173936452e07 22 void Stepper::enable()
glintligo 0:173936452e07 23 {
glintligo 0:173936452e07 24 en = 0;
glintligo 0:173936452e07 25 }
glintligo 0:173936452e07 26
glintligo 0:173936452e07 27 void Stepper::disable()
glintligo 0:173936452e07 28 {
glintligo 0:173936452e07 29 en = 1;
glintligo 0:173936452e07 30 }
glintligo 0:173936452e07 31
glintligo 0:173936452e07 32 void Stepper::step_control()
glintligo 0:173936452e07 33 {
glintligo 0:173936452e07 34 if(remain == 0)
glintligo 2:e9699816ff84 35 {
glintligo 2:e9699816ff84 36 stepok = 1;
glintligo 2:e9699816ff84 37 return ;
glintligo 0:173936452e07 38 }
Bilybill 1:88f743f3e7a7 39 if(remain < 0 )
Bilybill 1:88f743f3e7a7 40 {
Bilybill 1:88f743f3e7a7 41 if(stepPin){
Bilybill 1:88f743f3e7a7 42 stepPin = 0; //STEP 1->0
Bilybill 1:88f743f3e7a7 43 }else{
Bilybill 1:88f743f3e7a7 44 stepPin = 1; //STEP 0->1
Bilybill 1:88f743f3e7a7 45 }
Bilybill 1:88f743f3e7a7 46 }
Bilybill 1:88f743f3e7a7 47
Bilybill 1:88f743f3e7a7 48 if(stepPin){
Bilybill 1:88f743f3e7a7 49 stepPin = 0; //STEP 1->0
Bilybill 1:88f743f3e7a7 50 remain--;
Bilybill 1:88f743f3e7a7 51 }else{
Bilybill 1:88f743f3e7a7 52 stepPin = 1; //STEP 0->1
Bilybill 1:88f743f3e7a7 53 }
glintligo 0:173936452e07 54 }