Wansik Choi
/
linear_motor
linear motor code for ksk
LinearMotor.cpp@0:bc6aa7a92c1b, 2017-02-19 (annotated)
- Committer:
- cws8262
- Date:
- Sun Feb 19 22:09:41 2017 +0000
- Revision:
- 0:bc6aa7a92c1b
- Child:
- 1:ff295adcca59
c
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cws8262 | 0:bc6aa7a92c1b | 1 | #include "LinearMotor.h" |
cws8262 | 0:bc6aa7a92c1b | 2 | #include "mbed.h" |
cws8262 | 0:bc6aa7a92c1b | 3 | |
cws8262 | 0:bc6aa7a92c1b | 4 | LinearMotor::LinearMotor(PinName Dir, PinName Pulse, PinName St, PinName Limit) |
cws8262 | 0:bc6aa7a92c1b | 5 | :dir(Dir), pulse(Pulse), st(St), limit(Limit) |
cws8262 | 0:bc6aa7a92c1b | 6 | { |
cws8262 | 0:bc6aa7a92c1b | 7 | spd=1; |
cws8262 | 0:bc6aa7a92c1b | 8 | k=0.005; |
cws8262 | 0:bc6aa7a92c1b | 9 | timer.attach(callback(this,&LinearMotor::step),k/spd); |
cws8262 | 0:bc6aa7a92c1b | 10 | pulse=0; |
cws8262 | 0:bc6aa7a92c1b | 11 | dir=1; |
cws8262 | 0:bc6aa7a92c1b | 12 | st=1; |
cws8262 | 0:bc6aa7a92c1b | 13 | } |
cws8262 | 0:bc6aa7a92c1b | 14 | |
cws8262 | 0:bc6aa7a92c1b | 15 | void LinearMotor::step(void){ |
cws8262 | 0:bc6aa7a92c1b | 16 | pulse=!pulse; |
cws8262 | 0:bc6aa7a92c1b | 17 | if(dir) pos++; |
cws8262 | 0:bc6aa7a92c1b | 18 | else pos--; |
cws8262 | 0:bc6aa7a92c1b | 19 | } |
cws8262 | 0:bc6aa7a92c1b | 20 | |
cws8262 | 0:bc6aa7a92c1b | 21 | void LinearMotor::move(double Pos){ |
cws8262 | 0:bc6aa7a92c1b | 22 | |
cws8262 | 0:bc6aa7a92c1b | 23 | if(Pos-pos>=0) dir=1; |
cws8262 | 0:bc6aa7a92c1b | 24 | else dir=0; |
cws8262 | 0:bc6aa7a92c1b | 25 | while(Pos!=pos) st=0; |
cws8262 | 0:bc6aa7a92c1b | 26 | st=1; |
cws8262 | 0:bc6aa7a92c1b | 27 | } |
cws8262 | 0:bc6aa7a92c1b | 28 | |
cws8262 | 0:bc6aa7a92c1b | 29 | void LinearMotor::spdset(double Spd){ |
cws8262 | 0:bc6aa7a92c1b | 30 | spd=Spd; |
cws8262 | 0:bc6aa7a92c1b | 31 | timer.attach(callback(this,&LinearMotor::step),k/spd); |
cws8262 | 0:bc6aa7a92c1b | 32 | } |
cws8262 | 0:bc6aa7a92c1b | 33 | |
cws8262 | 0:bc6aa7a92c1b | 34 | void LinearMotor::init(void){ |
cws8262 | 0:bc6aa7a92c1b | 35 | dir=1; |
cws8262 | 0:bc6aa7a92c1b | 36 | st=0; |
cws8262 | 0:bc6aa7a92c1b | 37 | //while(); |
cws8262 | 0:bc6aa7a92c1b | 38 | st=1; |
cws8262 | 0:bc6aa7a92c1b | 39 | } |