Xbeat beta code as published by Andre Moehl ( http://mbed.org/users/hoppel/ ) With a slightly modified serial port definition
drive.h@0:badcd0d61c7b, 2011-02-04 (annotated)
- Committer:
- n0p
- Date:
- Fri Feb 04 08:31:00 2011 +0000
- Revision:
- 0:badcd0d61c7b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
n0p | 0:badcd0d61c7b | 1 | /* |
n0p | 0:badcd0d61c7b | 2 | * |
n0p | 0:badcd0d61c7b | 3 | * This program is free software; you can redistribute it and/or modify |
n0p | 0:badcd0d61c7b | 4 | * it under the terms of the GNU General Public License as published by |
n0p | 0:badcd0d61c7b | 5 | * the Free Software Foundation; either version 3 of the License, or |
n0p | 0:badcd0d61c7b | 6 | * (at your option) any later version. |
n0p | 0:badcd0d61c7b | 7 | * |
n0p | 0:badcd0d61c7b | 8 | * This program is distributed in the hope that it will be useful, |
n0p | 0:badcd0d61c7b | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
n0p | 0:badcd0d61c7b | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
n0p | 0:badcd0d61c7b | 11 | * GNU General Public License for more details. |
n0p | 0:badcd0d61c7b | 12 | * |
n0p | 0:badcd0d61c7b | 13 | * You should have received a copy of the GNU General Public License |
n0p | 0:badcd0d61c7b | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
n0p | 0:badcd0d61c7b | 15 | * |
n0p | 0:badcd0d61c7b | 16 | * @file drive.h |
n0p | 0:badcd0d61c7b | 17 | * @author Andre Moehl |
n0p | 0:badcd0d61c7b | 18 | * @date 01/2011 |
n0p | 0:badcd0d61c7b | 19 | * @brief Driver Class definition |
n0p | 0:badcd0d61c7b | 20 | */ |
n0p | 0:badcd0d61c7b | 21 | |
n0p | 0:badcd0d61c7b | 22 | #ifndef __DRIVE_H |
n0p | 0:badcd0d61c7b | 23 | #define __DRIVE_H |
n0p | 0:badcd0d61c7b | 24 | |
n0p | 0:badcd0d61c7b | 25 | /*--- Includes ------------------------*/ |
n0p | 0:badcd0d61c7b | 26 | #include "mbed.h" |
n0p | 0:badcd0d61c7b | 27 | #include "motor.h" |
n0p | 0:badcd0d61c7b | 28 | |
n0p | 0:badcd0d61c7b | 29 | //duty cycle for motor PWM in ms |
n0p | 0:badcd0d61c7b | 30 | #define DUTYCYCLE 20 |
n0p | 0:badcd0d61c7b | 31 | // pulse width (us) for Motor stop |
n0p | 0:badcd0d61c7b | 32 | #define ZERO 1500 |
n0p | 0:badcd0d61c7b | 33 | |
n0p | 0:badcd0d61c7b | 34 | #define LEFT 1 |
n0p | 0:badcd0d61c7b | 35 | #define RIGHT 2 |
n0p | 0:badcd0d61c7b | 36 | |
n0p | 0:badcd0d61c7b | 37 | class Drive |
n0p | 0:badcd0d61c7b | 38 | { |
n0p | 0:badcd0d61c7b | 39 | public: |
n0p | 0:badcd0d61c7b | 40 | |
n0p | 0:badcd0d61c7b | 41 | /** |
n0p | 0:badcd0d61c7b | 42 | * @brief Constructor |
n0p | 0:badcd0d61c7b | 43 | * @parameter LeftPin Left Motorp Signal Pin |
n0p | 0:badcd0d61c7b | 44 | * @parameter RightPin Right Motorp Signal Pin |
n0p | 0:badcd0d61c7b | 45 | */ |
n0p | 0:badcd0d61c7b | 46 | Drive(PinName LeftPin,PinName RightPin); |
n0p | 0:badcd0d61c7b | 47 | /** |
n0p | 0:badcd0d61c7b | 48 | * @ brief Sets the linear speed |
n0p | 0:badcd0d61c7b | 49 | * @parameter speed value between -100 and 100 % */ |
n0p | 0:badcd0d61c7b | 50 | void move(int left, int right); |
n0p | 0:badcd0d61c7b | 51 | /** |
n0p | 0:badcd0d61c7b | 52 | * @brief sets the motor zero offset |
n0p | 0:badcd0d61c7b | 53 | * @parameter left left motor offset |
n0p | 0:badcd0d61c7b | 54 | * @parameter right right motor offset |
n0p | 0:badcd0d61c7b | 55 | */ |
n0p | 0:badcd0d61c7b | 56 | void setoffset(int left, int right); |
n0p | 0:badcd0d61c7b | 57 | |
n0p | 0:badcd0d61c7b | 58 | private: |
n0p | 0:badcd0d61c7b | 59 | int curr_speed_L; |
n0p | 0:badcd0d61c7b | 60 | int curr_speed_R; |
n0p | 0:badcd0d61c7b | 61 | int offset_L, offset_R; |
n0p | 0:badcd0d61c7b | 62 | Motor _Left; |
n0p | 0:badcd0d61c7b | 63 | Motor _Right; |
n0p | 0:badcd0d61c7b | 64 | }; |
n0p | 0:badcd0d61c7b | 65 | |
n0p | 0:badcd0d61c7b | 66 | #endif |