Programme d'utilisation servomotors MX12 V1

Committer:
R66Y
Date:
Fri May 19 14:32:14 2017 +0000
Revision:
0:80df663dd15e
programme pour utiliser les servomoteurs MX12.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
R66Y 0:80df663dd15e 1 /* mbed Microcontroller Library - PortOut
R66Y 0:80df663dd15e 2 * Copyright (c) 2006-2011 ARM Limited. All rights reserved.
R66Y 0:80df663dd15e 3 */
R66Y 0:80df663dd15e 4
R66Y 0:80df663dd15e 5 #ifndef MBED_PORTOUT_H
R66Y 0:80df663dd15e 6 #define MBED_PORTOUT_H
R66Y 0:80df663dd15e 7
R66Y 0:80df663dd15e 8 #include "device.h"
R66Y 0:80df663dd15e 9
R66Y 0:80df663dd15e 10 #if DEVICE_PORTOUT
R66Y 0:80df663dd15e 11
R66Y 0:80df663dd15e 12 #include "platform.h"
R66Y 0:80df663dd15e 13 #include "PinNames.h"
R66Y 0:80df663dd15e 14 #include "Base.h"
R66Y 0:80df663dd15e 15
R66Y 0:80df663dd15e 16 #include "PortNames.h"
R66Y 0:80df663dd15e 17
R66Y 0:80df663dd15e 18 namespace mbed {
R66Y 0:80df663dd15e 19 /* Class: PortOut
R66Y 0:80df663dd15e 20 * A multiple pin digital out
R66Y 0:80df663dd15e 21 *
R66Y 0:80df663dd15e 22 * Example:
R66Y 0:80df663dd15e 23 * > // Toggle all four LEDs
R66Y 0:80df663dd15e 24 * >
R66Y 0:80df663dd15e 25 * > #include "mbed.h"
R66Y 0:80df663dd15e 26 * >
R66Y 0:80df663dd15e 27 * > // LED1 = P1.18 LED2 = P1.20 LED3 = P1.21 LED4 = P1.23
R66Y 0:80df663dd15e 28 * > #define LED_MASK 0x00B40000
R66Y 0:80df663dd15e 29 * >
R66Y 0:80df663dd15e 30 * > PortOut ledport(Port1, LED_MASK);
R66Y 0:80df663dd15e 31 * >
R66Y 0:80df663dd15e 32 * > int main() {
R66Y 0:80df663dd15e 33 * > while(1) {
R66Y 0:80df663dd15e 34 * > ledport = LED_MASK;
R66Y 0:80df663dd15e 35 * > wait(1);
R66Y 0:80df663dd15e 36 * > ledport = 0;
R66Y 0:80df663dd15e 37 * > wait(1);
R66Y 0:80df663dd15e 38 * > }
R66Y 0:80df663dd15e 39 * > }
R66Y 0:80df663dd15e 40 */
R66Y 0:80df663dd15e 41 class PortOut {
R66Y 0:80df663dd15e 42 public:
R66Y 0:80df663dd15e 43
R66Y 0:80df663dd15e 44 /* Constructor: PortOut
R66Y 0:80df663dd15e 45 * Create an PortOut, connected to the specified port
R66Y 0:80df663dd15e 46 *
R66Y 0:80df663dd15e 47 * Variables:
R66Y 0:80df663dd15e 48 * port - Port to connect to (Port0-Port5)
R66Y 0:80df663dd15e 49 * mask - A bitmask to identify which bits in the port should be included (0 - ignore)
R66Y 0:80df663dd15e 50 */
R66Y 0:80df663dd15e 51 PortOut(PortName port, int mask = 0xFFFFFFFF);
R66Y 0:80df663dd15e 52
R66Y 0:80df663dd15e 53 /* Function: write
R66Y 0:80df663dd15e 54 * Write the value to the output port
R66Y 0:80df663dd15e 55 *
R66Y 0:80df663dd15e 56 * Variables:
R66Y 0:80df663dd15e 57 * value - An integer specifying a bit to write for every corresponding PortOut pin
R66Y 0:80df663dd15e 58 */
R66Y 0:80df663dd15e 59 void write(int value);
R66Y 0:80df663dd15e 60
R66Y 0:80df663dd15e 61 /* Function: read
R66Y 0:80df663dd15e 62 * Read the value currently output on the port
R66Y 0:80df663dd15e 63 *
R66Y 0:80df663dd15e 64 * Variables:
R66Y 0:80df663dd15e 65 * returns - An integer with each bit corresponding to associated PortOut pin setting
R66Y 0:80df663dd15e 66 */
R66Y 0:80df663dd15e 67 int read();
R66Y 0:80df663dd15e 68
R66Y 0:80df663dd15e 69 /* Function: operator=
R66Y 0:80df663dd15e 70 * A shorthand for <write>
R66Y 0:80df663dd15e 71 */
R66Y 0:80df663dd15e 72 PortOut& operator= (int value) {
R66Y 0:80df663dd15e 73 write(value);
R66Y 0:80df663dd15e 74 return *this;
R66Y 0:80df663dd15e 75 }
R66Y 0:80df663dd15e 76
R66Y 0:80df663dd15e 77 PortOut& operator= (PortOut& rhs) {
R66Y 0:80df663dd15e 78 write(rhs.read());
R66Y 0:80df663dd15e 79 return *this;
R66Y 0:80df663dd15e 80 }
R66Y 0:80df663dd15e 81
R66Y 0:80df663dd15e 82 /* Function: operator int()
R66Y 0:80df663dd15e 83 * A shorthand for <read>
R66Y 0:80df663dd15e 84 */
R66Y 0:80df663dd15e 85 operator int() {
R66Y 0:80df663dd15e 86 return read();
R66Y 0:80df663dd15e 87 }
R66Y 0:80df663dd15e 88
R66Y 0:80df663dd15e 89 private:
R66Y 0:80df663dd15e 90 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
R66Y 0:80df663dd15e 91 LPC_GPIO_TypeDef *_gpio;
R66Y 0:80df663dd15e 92 #endif
R66Y 0:80df663dd15e 93 PortName _port;
R66Y 0:80df663dd15e 94 uint32_t _mask;
R66Y 0:80df663dd15e 95 };
R66Y 0:80df663dd15e 96
R66Y 0:80df663dd15e 97 } // namespace mbed
R66Y 0:80df663dd15e 98
R66Y 0:80df663dd15e 99 #endif
R66Y 0:80df663dd15e 100
R66Y 0:80df663dd15e 101 #endif