this is program for mbed ,to relay MCUcomm data to servo

Dependencies:   Servo mbed

Committer:
matsu
Date:
Wed Nov 28 17:12:00 2012 +0000
Revision:
0:09bf8e3091e8
Child:
1:0fe52e356d01
to move servo using data from pc by serial; ; ver 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matsu 0:09bf8e3091e8 1 #include "command.h"
matsu 0:09bf8e3091e8 2 #include "mbed.h"
matsu 0:09bf8e3091e8 3
matsu 0:09bf8e3091e8 4
matsu 0:09bf8e3091e8 5
matsu 0:09bf8e3091e8 6
matsu 0:09bf8e3091e8 7
matsu 0:09bf8e3091e8 8 Command::Command(PinName pin) :Servo(pin)
matsu 0:09bf8e3091e8 9 {
matsu 0:09bf8e3091e8 10
matsu 0:09bf8e3091e8 11 };
matsu 0:09bf8e3091e8 12
matsu 0:09bf8e3091e8 13 void Command::targetPosition(int number ,int receive)
matsu 0:09bf8e3091e8 14 {
matsu 0:09bf8e3091e8 15 switch(number-3){
matsu 0:09bf8e3091e8 16 case 0:
matsu 0:09bf8e3091e8 17 _position = receive<<8;
matsu 0:09bf8e3091e8 18 break;
matsu 0:09bf8e3091e8 19 case 1:
matsu 0:09bf8e3091e8 20 _position += receive;
matsu 0:09bf8e3091e8 21 break;
matsu 0:09bf8e3091e8 22 case 2:
matsu 0:09bf8e3091e8 23 _time = receive<<8;
matsu 0:09bf8e3091e8 24 break;
matsu 0:09bf8e3091e8 25 case 3:
matsu 0:09bf8e3091e8 26 _time += receive;
matsu 0:09bf8e3091e8 27 break;
matsu 0:09bf8e3091e8 28 }
matsu 0:09bf8e3091e8 29
matsu 0:09bf8e3091e8 30 }
matsu 0:09bf8e3091e8 31
matsu 0:09bf8e3091e8 32 void Command::homePosition(int number ,int receive)
matsu 0:09bf8e3091e8 33 {
matsu 0:09bf8e3091e8 34 switch(number-3){
matsu 0:09bf8e3091e8 35 case 0:
matsu 0:09bf8e3091e8 36 _position = receive<<8;
matsu 0:09bf8e3091e8 37 break;
matsu 0:09bf8e3091e8 38 case 1:
matsu 0:09bf8e3091e8 39 _position += receive;
matsu 0:09bf8e3091e8 40 break;
matsu 0:09bf8e3091e8 41 case 2:
matsu 0:09bf8e3091e8 42 _homePosition = _position;
matsu 0:09bf8e3091e8 43 break;
matsu 0:09bf8e3091e8 44 }
matsu 0:09bf8e3091e8 45 }
matsu 0:09bf8e3091e8 46
matsu 0:09bf8e3091e8 47
matsu 0:09bf8e3091e8 48 int Command::getPosition()
matsu 0:09bf8e3091e8 49 {
matsu 0:09bf8e3091e8 50 return _position;
matsu 0:09bf8e3091e8 51 }
matsu 0:09bf8e3091e8 52
matsu 0:09bf8e3091e8 53 int Command::getTime()
matsu 0:09bf8e3091e8 54 {
matsu 0:09bf8e3091e8 55 return _time;
matsu 0:09bf8e3091e8 56 }
matsu 0:09bf8e3091e8 57
matsu 0:09bf8e3091e8 58 int Command::getHomeposition()
matsu 0:09bf8e3091e8 59 {
matsu 0:09bf8e3091e8 60 return _homePosition;
matsu 0:09bf8e3091e8 61 }
matsu 0:09bf8e3091e8 62
matsu 0:09bf8e3091e8 63 void Command::onOff() {
matsu 0:09bf8e3091e8 64 if(_on == false){
matsu 0:09bf8e3091e8 65 _on = true;
matsu 0:09bf8e3091e8 66 write(getPosition()/1800);
matsu 0:09bf8e3091e8 67 }else if(_on == true){
matsu 0:09bf8e3091e8 68 _on = false;
matsu 0:09bf8e3091e8 69 _pwm.pulsewidth(0);
matsu 0:09bf8e3091e8 70 }
matsu 0:09bf8e3091e8 71 }
matsu 0:09bf8e3091e8 72
matsu 0:09bf8e3091e8 73 Command& Command::operator= (float percent) {
matsu 0:09bf8e3091e8 74 write(percent);
matsu 0:09bf8e3091e8 75 return *this;
matsu 0:09bf8e3091e8 76 }
matsu 0:09bf8e3091e8 77
matsu 0:09bf8e3091e8 78 Command& Command::operator= (Command& rhs) {
matsu 0:09bf8e3091e8 79 write(rhs.read());
matsu 0:09bf8e3091e8 80 return *this;
matsu 0:09bf8e3091e8 81 }
matsu 0:09bf8e3091e8 82