Control the Pololu SMC02B
SMC02B.h@2:d14838eb6b4b, 2010-10-11 (annotated)
- Committer:
- goncaloc
- Date:
- Mon Oct 11 18:55:43 2010 +0000
- Revision:
- 2:d14838eb6b4b
- Parent:
- 1:683f2848e917
- Child:
- 3:8595605248a3
0v3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
goncaloc | 1:683f2848e917 | 1 | /** |
goncaloc | 1:683f2848e917 | 2 | * @author Gonçalo Costa |
goncaloc | 1:683f2848e917 | 3 | * |
goncaloc | 1:683f2848e917 | 4 | * @section LICENSE |
goncaloc | 1:683f2848e917 | 5 | * |
goncaloc | 1:683f2848e917 | 6 | * Copyright (c) 2010 ARM Limited |
goncaloc | 1:683f2848e917 | 7 | * |
goncaloc | 1:683f2848e917 | 8 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
goncaloc | 1:683f2848e917 | 9 | * of this software and associated documentation files (the "Software"), to deal |
goncaloc | 1:683f2848e917 | 10 | * in the Software without restriction, including without limitation the rights |
goncaloc | 1:683f2848e917 | 11 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
goncaloc | 1:683f2848e917 | 12 | * copies of the Software, and to permit persons to whom the Software is |
goncaloc | 1:683f2848e917 | 13 | * furnished to do so, subject to the following conditions: |
goncaloc | 1:683f2848e917 | 14 | * |
goncaloc | 1:683f2848e917 | 15 | * The above copyright notice and this permission notice shall be included in |
goncaloc | 1:683f2848e917 | 16 | * all copies or substantial portions of the Software. |
goncaloc | 1:683f2848e917 | 17 | * |
goncaloc | 1:683f2848e917 | 18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
goncaloc | 1:683f2848e917 | 19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
goncaloc | 1:683f2848e917 | 20 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
goncaloc | 1:683f2848e917 | 21 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
goncaloc | 1:683f2848e917 | 22 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
goncaloc | 1:683f2848e917 | 23 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
goncaloc | 1:683f2848e917 | 24 | * THE SOFTWARE. |
goncaloc | 1:683f2848e917 | 25 | * |
goncaloc | 1:683f2848e917 | 26 | * @section DESCRIPTION |
goncaloc | 1:683f2848e917 | 27 | * |
goncaloc | 1:683f2848e917 | 28 | * Pololu Micro Dual Serial Motor Controller. |
goncaloc | 1:683f2848e917 | 29 | * |
goncaloc | 1:683f2848e917 | 30 | * Datasheet: |
goncaloc | 1:683f2848e917 | 31 | * |
goncaloc | 1:683f2848e917 | 32 | * http://www.pololu.com/file/0J36/smc02b_guide.pdf |
goncaloc | 1:683f2848e917 | 33 | */ |
goncaloc | 1:683f2848e917 | 34 | |
goncaloc | 0:33043894c6cb | 35 | #ifndef SMC02B_H |
goncaloc | 0:33043894c6cb | 36 | #define SMC02B_H |
goncaloc | 0:33043894c6cb | 37 | /** |
goncaloc | 0:33043894c6cb | 38 | * Includes |
goncaloc | 0:33043894c6cb | 39 | */ |
goncaloc | 0:33043894c6cb | 40 | #include "mbed.h" |
goncaloc | 0:33043894c6cb | 41 | |
goncaloc | 0:33043894c6cb | 42 | /** |
goncaloc | 0:33043894c6cb | 43 | * Defines |
goncaloc | 0:33043894c6cb | 44 | */ |
goncaloc | 0:33043894c6cb | 45 | #define SMC02B_START_BYTE 0x80 |
goncaloc | 0:33043894c6cb | 46 | #define SMC02B_CONFIG_BYTE 0x02 |
goncaloc | 0:33043894c6cb | 47 | #define SMC02B_DEVICE_ID 0x00 |
goncaloc | 0:33043894c6cb | 48 | #define SMC02B_BYTE3 0x00 |
goncaloc | 0:33043894c6cb | 49 | #define SMC02B_BYTE4 0x00 |
goncaloc | 0:33043894c6cb | 50 | #define SMC02B_MOTOR1_DIR 0x00 |
goncaloc | 0:33043894c6cb | 51 | #define SMC02B_MOTOR1_SPEED 0x00 |
goncaloc | 0:33043894c6cb | 52 | #define SMC02B_MOTOR1_NUMBER 0x00 |
goncaloc | 0:33043894c6cb | 53 | #define SMC02B_MOTOR2_DIR 0x00 |
goncaloc | 0:33043894c6cb | 54 | #define SMC02B_MOTOR2_SPEED 0x00 |
goncaloc | 0:33043894c6cb | 55 | #define SMC02B_MOTOR2_NUMBER 0x00 |
goncaloc | 0:33043894c6cb | 56 | |
goncaloc | 2:d14838eb6b4b | 57 | class SMC02B { |
goncaloc | 2:d14838eb6b4b | 58 | |
goncaloc | 0:33043894c6cb | 59 | public: |
goncaloc | 2:d14838eb6b4b | 60 | |
goncaloc | 2:d14838eb6b4b | 61 | /** |
goncaloc | 2:d14838eb6b4b | 62 | * Constructor. |
goncaloc | 2:d14838eb6b4b | 63 | * |
goncaloc | 2:d14838eb6b4b | 64 | * @param tx mbed pin to use for TX line of Serial interface. |
goncaloc | 2:d14838eb6b4b | 65 | * @param rx mbed pin to use for RX line of Serial interface. |
goncaloc | 2:d14838eb6b4b | 66 | * @param rst mbed pin to use for RST line. |
goncaloc | 2:d14838eb6b4b | 67 | */ |
goncaloc | 0:33043894c6cb | 68 | SMC02B(PinName tx, PinName rx, PinName pin); |
goncaloc | 2:d14838eb6b4b | 69 | |
goncaloc | 2:d14838eb6b4b | 70 | /** |
goncaloc | 2:d14838eb6b4b | 71 | * Reset SMC02B. |
goncaloc | 2:d14838eb6b4b | 72 | * |
goncaloc | 2:d14838eb6b4b | 73 | */ |
goncaloc | 0:33043894c6cb | 74 | void SMC02B_RST(void); |
goncaloc | 2:d14838eb6b4b | 75 | |
goncaloc | 2:d14838eb6b4b | 76 | /** |
goncaloc | 2:d14838eb6b4b | 77 | * Set Motor. |
goncaloc | 2:d14838eb6b4b | 78 | * |
goncaloc | 2:d14838eb6b4b | 79 | * @param motor Motor number. |
goncaloc | 2:d14838eb6b4b | 80 | * @param Direction Motor Direction. |
goncaloc | 2:d14838eb6b4b | 81 | * @param speed Motor Speed. |
goncaloc | 2:d14838eb6b4b | 82 | */ |
goncaloc | 0:33043894c6cb | 83 | void SMC02B_MOTOR_SET( char motor, char direction, char speed ); |
goncaloc | 0:33043894c6cb | 84 | void SMC02B_MOTOR_BRAKE( char motor ); |
goncaloc | 0:33043894c6cb | 85 | void SMC02B_MOTOR_COAST( char motor ); |
goncaloc | 0:33043894c6cb | 86 | void SMC02B_CONFIG( char mode, char motor ); |
goncaloc | 0:33043894c6cb | 87 | |
goncaloc | 0:33043894c6cb | 88 | private: |
goncaloc | 0:33043894c6cb | 89 | DigitalOut _rst; |
goncaloc | 0:33043894c6cb | 90 | Serial* _SMC02B; |
goncaloc | 0:33043894c6cb | 91 | |
goncaloc | 0:33043894c6cb | 92 | }; |
goncaloc | 0:33043894c6cb | 93 | |
goncaloc | 0:33043894c6cb | 94 | #endif |