123123123123123123123123123

Dependencies:   mbed

Committer:
TonyYI
Date:
Thu Jul 03 14:52:44 2014 +0000
Revision:
3:4306d042af6f
Parent:
0:3417ca0a36c0
123123

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TonyYI 0:3417ca0a36c0 1 /******************************************************
TonyYI 0:3417ca0a36c0 2
TonyYI 0:3417ca0a36c0 3 ****┏┓ ┏┓
TonyYI 0:3417ca0a36c0 4 **┏┛┻━━━━━━┛┻┓
TonyYI 0:3417ca0a36c0 5 **┃ ┃
TonyYI 0:3417ca0a36c0 6 **┃ ━━━ ┃
TonyYI 0:3417ca0a36c0 7 **┃ ┳┛ ┗┳ ┃
TonyYI 0:3417ca0a36c0 8 **┃ ┃
TonyYI 0:3417ca0a36c0 9 **┃ ''' ┻ ''' ┃
TonyYI 0:3417ca0a36c0 10 **┃ ┃
TonyYI 0:3417ca0a36c0 11 **┗━━┓ ┏━━┛
TonyYI 0:3417ca0a36c0 12 *******┃ ┃
TonyYI 0:3417ca0a36c0 13 *******┃ ┃
TonyYI 0:3417ca0a36c0 14 *******┃ ┃
TonyYI 0:3417ca0a36c0 15 *******┃ ┗━━━━━━━━┓
TonyYI 0:3417ca0a36c0 16 *******┃ ┃━┓
TonyYI 0:3417ca0a36c0 17 *******┃ NO BUG ┏━┛
TonyYI 0:3417ca0a36c0 18 *******┃ ┃
TonyYI 0:3417ca0a36c0 19 *******┗━┓ ┓ ┏━┏━┓ ━┛
TonyYI 0:3417ca0a36c0 20 ***********┃ ┛ ┛ ┃ ┛ ┛
TonyYI 0:3417ca0a36c0 21 ***********┃ ┃ ┃ ┃ ┃ ┃
TonyYI 0:3417ca0a36c0 22 ***********┗━┛━┛ ┗━┛━┛
TonyYI 0:3417ca0a36c0 23
TonyYI 0:3417ca0a36c0 24 This part is added by project ESDC2014 of CUHK team.
TonyYI 0:3417ca0a36c0 25 All the code with this header are under GPL open source license.
TonyYI 0:3417ca0a36c0 26 This program is running on Mbed Platform 'mbed LPC1768' avaliable in 'http://mbed.org'.
TonyYI 0:3417ca0a36c0 27 **********************************************************/
TonyYI 0:3417ca0a36c0 28 #include "mbed.h"
TonyYI 0:3417ca0a36c0 29 #include "define.h"
TonyYI 0:3417ca0a36c0 30
TonyYI 0:3417ca0a36c0 31 #ifndef _LIFTER_H
TonyYI 0:3417ca0a36c0 32 #define _LIFTER_H
TonyYI 0:3417ca0a36c0 33
TonyYI 0:3417ca0a36c0 34 /*
TonyYI 0:3417ca0a36c0 35 DigitalOut lifter_enable(p23);
TonyYI 0:3417ca0a36c0 36 PwmOut lifter_pwmUp(p21);
TonyYI 0:3417ca0a36c0 37 PwmOut lifter_pwmDown(p22);
TonyYI 0:3417ca0a36c0 38 DigitalIn lifter_encoder_A(p26);
TonyYI 0:3417ca0a36c0 39 DigitalIn lifter_encoder_B(p25);
TonyYI 0:3417ca0a36c0 40 */
TonyYI 0:3417ca0a36c0 41
TonyYI 0:3417ca0a36c0 42 //100 pulse => 8 mm
TonyYI 0:3417ca0a36c0 43 #define RPMM 13 //pulseCount per mm
TonyYI 0:3417ca0a36c0 44
TonyYI 0:3417ca0a36c0 45 class Lifter
TonyYI 0:3417ca0a36c0 46 {
TonyYI 0:3417ca0a36c0 47 public:
TonyYI 0:3417ca0a36c0 48 Lifter(MyDigitalOut* _enable, MyPwmOut* _pwmUp, MyPwmOut* _pwmDown, MyInterruptIn* encoder_A, MyDigitalIn* encoder_B);
TonyYI 0:3417ca0a36c0 49 ~Lifter();
TonyYI 0:3417ca0a36c0 50 void lifterUp(uint16_t mm);
TonyYI 0:3417ca0a36c0 51 void lifterDown(uint16_t mm);
TonyYI 0:3417ca0a36c0 52 void lifterMove(uint16_t move_dis, uint8_t move_dir, uint16_t rotate_dis, uint8_t rotate_dir);
TonyYI 0:3417ca0a36c0 53 uint8_t getDir();
TonyYI 0:3417ca0a36c0 54 uint8_t isStopped();
TonyYI 0:3417ca0a36c0 55
TonyYI 0:3417ca0a36c0 56 uint32_t pulseCount;
TonyYI 0:3417ca0a36c0 57 uint32_t targetPulseCount;
TonyYI 0:3417ca0a36c0 58
TonyYI 0:3417ca0a36c0 59 void setLifterStop();
TonyYI 0:3417ca0a36c0 60 void setLifterUp();
TonyYI 0:3417ca0a36c0 61 void setLifterDown();
TonyYI 0:3417ca0a36c0 62
TonyYI 0:3417ca0a36c0 63 private:
TonyYI 0:3417ca0a36c0 64 MyDigitalOut* _enable;
TonyYI 0:3417ca0a36c0 65 MyPwmOut* _pwmUp;
TonyYI 0:3417ca0a36c0 66 MyPwmOut* _pwmDown;
TonyYI 0:3417ca0a36c0 67 MyInterruptIn* _encoder_A; //6 pulse per round
TonyYI 0:3417ca0a36c0 68 MyDigitalIn* _encoder_B; //5v is up, 0v is down. looks like no use
TonyYI 0:3417ca0a36c0 69 uint8_t _dir;
TonyYI 0:3417ca0a36c0 70 uint8_t _stop; //0 means moving, 1 means stopped
TonyYI 0:3417ca0a36c0 71 };
TonyYI 0:3417ca0a36c0 72
TonyYI 0:3417ca0a36c0 73 #endif