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 - DigitalOut
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_DIGITALOUT_H
R66Y 0:80df663dd15e 6 #define MBED_DIGITALOUT_H
R66Y 0:80df663dd15e 7
R66Y 0:80df663dd15e 8 #include "platform.h"
R66Y 0:80df663dd15e 9 #include "PinNames.h"
R66Y 0:80df663dd15e 10 #include "PeripheralNames.h"
R66Y 0:80df663dd15e 11 #include "Base.h"
R66Y 0:80df663dd15e 12
R66Y 0:80df663dd15e 13 namespace mbed {
R66Y 0:80df663dd15e 14
R66Y 0:80df663dd15e 15 /* Class: DigitalOut
R66Y 0:80df663dd15e 16 * A digital output, used for setting the state of a pin
R66Y 0:80df663dd15e 17 *
R66Y 0:80df663dd15e 18 * Example:
R66Y 0:80df663dd15e 19 * > // Toggle a LED
R66Y 0:80df663dd15e 20 * > #include "mbed.h"
R66Y 0:80df663dd15e 21 * >
R66Y 0:80df663dd15e 22 * > DigitalOut led(LED1);
R66Y 0:80df663dd15e 23 * >
R66Y 0:80df663dd15e 24 * > int main() {
R66Y 0:80df663dd15e 25 * > while(1) {
R66Y 0:80df663dd15e 26 * > led = !led;
R66Y 0:80df663dd15e 27 * > wait(0.2);
R66Y 0:80df663dd15e 28 * > }
R66Y 0:80df663dd15e 29 * > }
R66Y 0:80df663dd15e 30 */
R66Y 0:80df663dd15e 31 class DigitalOut : public Base {
R66Y 0:80df663dd15e 32
R66Y 0:80df663dd15e 33 public:
R66Y 0:80df663dd15e 34
R66Y 0:80df663dd15e 35 /* Constructor: DigitalOut
R66Y 0:80df663dd15e 36 * Create a DigitalOut connected to the specified pin
R66Y 0:80df663dd15e 37 *
R66Y 0:80df663dd15e 38 * Variables:
R66Y 0:80df663dd15e 39 * pin - DigitalOut pin to connect to
R66Y 0:80df663dd15e 40 */
R66Y 0:80df663dd15e 41 DigitalOut(PinName pin, const char* name = NULL);
R66Y 0:80df663dd15e 42
R66Y 0:80df663dd15e 43 /* Function: write
R66Y 0:80df663dd15e 44 * Set the output, specified as 0 or 1 (int)
R66Y 0:80df663dd15e 45 *
R66Y 0:80df663dd15e 46 * Variables:
R66Y 0:80df663dd15e 47 * value - An integer specifying the pin output value,
R66Y 0:80df663dd15e 48 * 0 for logical 0 and 1 (or any other non-zero value) for logical 1
R66Y 0:80df663dd15e 49 */
R66Y 0:80df663dd15e 50 void write(int value) {
R66Y 0:80df663dd15e 51
R66Y 0:80df663dd15e 52 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
R66Y 0:80df663dd15e 53
R66Y 0:80df663dd15e 54 if(value) {
R66Y 0:80df663dd15e 55 _gpio->FIOSET = _mask;
R66Y 0:80df663dd15e 56 } else {
R66Y 0:80df663dd15e 57 _gpio->FIOCLR = _mask;
R66Y 0:80df663dd15e 58 }
R66Y 0:80df663dd15e 59
R66Y 0:80df663dd15e 60 #elif defined(TARGET_LPC11U24)
R66Y 0:80df663dd15e 61
R66Y 0:80df663dd15e 62 if(value) {
R66Y 0:80df663dd15e 63 LPC_GPIO->SET[_index] = _mask;
R66Y 0:80df663dd15e 64 } else {
R66Y 0:80df663dd15e 65 LPC_GPIO->CLR[_index] = _mask;
R66Y 0:80df663dd15e 66 }
R66Y 0:80df663dd15e 67 #endif
R66Y 0:80df663dd15e 68
R66Y 0:80df663dd15e 69 }
R66Y 0:80df663dd15e 70
R66Y 0:80df663dd15e 71 /* Function: read
R66Y 0:80df663dd15e 72 * Return the output setting, represented as 0 or 1 (int)
R66Y 0:80df663dd15e 73 *
R66Y 0:80df663dd15e 74 * Variables:
R66Y 0:80df663dd15e 75 * returns - An integer representing the output setting of the pin,
R66Y 0:80df663dd15e 76 * 0 for logical 0 and 1 for logical 1
R66Y 0:80df663dd15e 77 */
R66Y 0:80df663dd15e 78 int read() {
R66Y 0:80df663dd15e 79 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
R66Y 0:80df663dd15e 80 return ((_gpio->FIOPIN & _mask) ? 1 : 0);
R66Y 0:80df663dd15e 81 #elif defined(TARGET_LPC11U24)
R66Y 0:80df663dd15e 82 return ((LPC_GPIO->PIN[_index] & _mask) ? 1 : 0);
R66Y 0:80df663dd15e 83 #endif
R66Y 0:80df663dd15e 84
R66Y 0:80df663dd15e 85 }
R66Y 0:80df663dd15e 86
R66Y 0:80df663dd15e 87
R66Y 0:80df663dd15e 88 #ifdef MBED_OPERATORS
R66Y 0:80df663dd15e 89 /* Function: operator=
R66Y 0:80df663dd15e 90 * A shorthand for <write>
R66Y 0:80df663dd15e 91 */
R66Y 0:80df663dd15e 92 DigitalOut& operator= (int value) {
R66Y 0:80df663dd15e 93 write(value);
R66Y 0:80df663dd15e 94 return *this;
R66Y 0:80df663dd15e 95 }
R66Y 0:80df663dd15e 96
R66Y 0:80df663dd15e 97 DigitalOut& operator= (DigitalOut& rhs) {
R66Y 0:80df663dd15e 98 write(rhs.read());
R66Y 0:80df663dd15e 99 return *this;
R66Y 0:80df663dd15e 100 }
R66Y 0:80df663dd15e 101
R66Y 0:80df663dd15e 102
R66Y 0:80df663dd15e 103 /* Function: operator int()
R66Y 0:80df663dd15e 104 * A shorthand for <read>
R66Y 0:80df663dd15e 105 */
R66Y 0:80df663dd15e 106 operator int() {
R66Y 0:80df663dd15e 107 return read();
R66Y 0:80df663dd15e 108 }
R66Y 0:80df663dd15e 109
R66Y 0:80df663dd15e 110 #endif
R66Y 0:80df663dd15e 111
R66Y 0:80df663dd15e 112 #ifdef MBED_RPC
R66Y 0:80df663dd15e 113 virtual const struct rpc_method *get_rpc_methods();
R66Y 0:80df663dd15e 114 static struct rpc_class *get_rpc_class();
R66Y 0:80df663dd15e 115 #endif
R66Y 0:80df663dd15e 116
R66Y 0:80df663dd15e 117 protected:
R66Y 0:80df663dd15e 118
R66Y 0:80df663dd15e 119 PinName _pin;
R66Y 0:80df663dd15e 120
R66Y 0:80df663dd15e 121 #if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
R66Y 0:80df663dd15e 122 LPC_GPIO_TypeDef *_gpio;
R66Y 0:80df663dd15e 123 #elif defined(TARGET_LPC11U24)
R66Y 0:80df663dd15e 124 int _index;
R66Y 0:80df663dd15e 125 #endif
R66Y 0:80df663dd15e 126
R66Y 0:80df663dd15e 127 uint32_t _mask;
R66Y 0:80df663dd15e 128
R66Y 0:80df663dd15e 129
R66Y 0:80df663dd15e 130 };
R66Y 0:80df663dd15e 131
R66Y 0:80df663dd15e 132 } // namespace mbed
R66Y 0:80df663dd15e 133
R66Y 0:80df663dd15e 134 #endif