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 - PwmOut
R66Y 0:80df663dd15e 2 * Copyright (c) 2007-2011 ARM Limited. All rights reserved.
R66Y 0:80df663dd15e 3 */
R66Y 0:80df663dd15e 4
R66Y 0:80df663dd15e 5 #ifndef MBED_PWMOUT_H
R66Y 0:80df663dd15e 6 #define MBED_PWMOUT_H
R66Y 0:80df663dd15e 7
R66Y 0:80df663dd15e 8 #include "device.h"
R66Y 0:80df663dd15e 9
R66Y 0:80df663dd15e 10 #if DEVICE_PWMOUT
R66Y 0:80df663dd15e 11
R66Y 0:80df663dd15e 12 #include "platform.h"
R66Y 0:80df663dd15e 13 #include "PinNames.h"
R66Y 0:80df663dd15e 14 #include "PeripheralNames.h"
R66Y 0:80df663dd15e 15 #include "Base.h"
R66Y 0:80df663dd15e 16
R66Y 0:80df663dd15e 17 namespace mbed {
R66Y 0:80df663dd15e 18
R66Y 0:80df663dd15e 19 /* Class: PwmOut
R66Y 0:80df663dd15e 20 * A pulse-width modulation digital output
R66Y 0:80df663dd15e 21 *
R66Y 0:80df663dd15e 22 * Example
R66Y 0:80df663dd15e 23 * > // Fade a led on.
R66Y 0:80df663dd15e 24 * > #include "mbed.h"
R66Y 0:80df663dd15e 25 * >
R66Y 0:80df663dd15e 26 * > PwmOut led(LED1);
R66Y 0:80df663dd15e 27 * >
R66Y 0:80df663dd15e 28 * > int main() {
R66Y 0:80df663dd15e 29 * > while(1) {
R66Y 0:80df663dd15e 30 * > led = led + 0.01;
R66Y 0:80df663dd15e 31 * > wait(0.2);
R66Y 0:80df663dd15e 32 * > if(led == 1.0) {
R66Y 0:80df663dd15e 33 * > led = 0;
R66Y 0:80df663dd15e 34 * > }
R66Y 0:80df663dd15e 35 * > }
R66Y 0:80df663dd15e 36 * > }
R66Y 0:80df663dd15e 37 *
R66Y 0:80df663dd15e 38 * Note that on the LPC1768 and LPC2368, the PWMs all share the same
R66Y 0:80df663dd15e 39 * period - if you change the period for one, you change it for all.
R66Y 0:80df663dd15e 40 * Although routines that change the period maintain the duty cycle
R66Y 0:80df663dd15e 41 * for its PWM, all other PWMs will require their duty cycle to be
R66Y 0:80df663dd15e 42 * refreshed.
R66Y 0:80df663dd15e 43 */
R66Y 0:80df663dd15e 44 class PwmOut : public Base {
R66Y 0:80df663dd15e 45
R66Y 0:80df663dd15e 46 public:
R66Y 0:80df663dd15e 47
R66Y 0:80df663dd15e 48 /* Constructor: PwmOut
R66Y 0:80df663dd15e 49 * Create a PwmOut connected to the specified pin
R66Y 0:80df663dd15e 50 *
R66Y 0:80df663dd15e 51 * Variables:
R66Y 0:80df663dd15e 52 * pin - PwmOut pin to connect to
R66Y 0:80df663dd15e 53 */
R66Y 0:80df663dd15e 54 PwmOut(PinName pin, const char *name = NULL);
R66Y 0:80df663dd15e 55
R66Y 0:80df663dd15e 56 /* Function: write
R66Y 0:80df663dd15e 57 * Set the ouput duty-cycle, specified as a percentage (float)
R66Y 0:80df663dd15e 58 *
R66Y 0:80df663dd15e 59 * Variables:
R66Y 0:80df663dd15e 60 * value - A floating-point value representing the output duty-cycle,
R66Y 0:80df663dd15e 61 * specified as a percentage. The value should lie between
R66Y 0:80df663dd15e 62 * 0.0f (representing on 0%) and 1.0f (representing on 100%).
R66Y 0:80df663dd15e 63 * Values outside this range will be saturated to 0.0f or 1.0f.
R66Y 0:80df663dd15e 64 */
R66Y 0:80df663dd15e 65 void write(float value);
R66Y 0:80df663dd15e 66
R66Y 0:80df663dd15e 67 /* Function: read
R66Y 0:80df663dd15e 68 * Return the current output duty-cycle setting, measured as a percentage (float)
R66Y 0:80df663dd15e 69 *
R66Y 0:80df663dd15e 70 * Variables:
R66Y 0:80df663dd15e 71 * returns - A floating-point value representing the current duty-cycle being output on the pin,
R66Y 0:80df663dd15e 72 * measured as a percentage. The returned value will lie between
R66Y 0:80df663dd15e 73 * 0.0f (representing on 0%) and 1.0f (representing on 100%).
R66Y 0:80df663dd15e 74 *
R66Y 0:80df663dd15e 75 * Note:
R66Y 0:80df663dd15e 76 * This value may not match exactly the value set by a previous <write>.
R66Y 0:80df663dd15e 77 */
R66Y 0:80df663dd15e 78 float read();
R66Y 0:80df663dd15e 79
R66Y 0:80df663dd15e 80 /* Function: period
R66Y 0:80df663dd15e 81 * Set the PWM period, specified in seconds (float), keeping the
R66Y 0:80df663dd15e 82 * duty cycle the same.
R66Y 0:80df663dd15e 83 *
R66Y 0:80df663dd15e 84 * Note:
R66Y 0:80df663dd15e 85 * The resolution is currently in microseconds; periods smaller than this
R66Y 0:80df663dd15e 86 * will be set to zero.
R66Y 0:80df663dd15e 87 */
R66Y 0:80df663dd15e 88 void period(float seconds);
R66Y 0:80df663dd15e 89
R66Y 0:80df663dd15e 90 /* Function: period_ms
R66Y 0:80df663dd15e 91 * Set the PWM period, specified in milli-seconds (int), keeping the
R66Y 0:80df663dd15e 92 * duty cycle the same.
R66Y 0:80df663dd15e 93 */
R66Y 0:80df663dd15e 94 void period_ms(int ms);
R66Y 0:80df663dd15e 95
R66Y 0:80df663dd15e 96 /* Function: period_us
R66Y 0:80df663dd15e 97 * Set the PWM period, specified in micro-seconds (int), keeping the
R66Y 0:80df663dd15e 98 * duty cycle the same.
R66Y 0:80df663dd15e 99 */
R66Y 0:80df663dd15e 100 void period_us(int us);
R66Y 0:80df663dd15e 101
R66Y 0:80df663dd15e 102 /* Function: pulsewidth
R66Y 0:80df663dd15e 103 * Set the PWM pulsewidth, specified in seconds (float), keeping the
R66Y 0:80df663dd15e 104 * period the same.
R66Y 0:80df663dd15e 105 */
R66Y 0:80df663dd15e 106 void pulsewidth(float seconds);
R66Y 0:80df663dd15e 107
R66Y 0:80df663dd15e 108 /* Function: pulsewidth_ms
R66Y 0:80df663dd15e 109 * Set the PWM pulsewidth, specified in milli-seconds (int), keeping
R66Y 0:80df663dd15e 110 * the period the same.
R66Y 0:80df663dd15e 111 */
R66Y 0:80df663dd15e 112 void pulsewidth_ms(int ms);
R66Y 0:80df663dd15e 113
R66Y 0:80df663dd15e 114 /* Function: pulsewidth_us
R66Y 0:80df663dd15e 115 * Set the PWM pulsewidth, specified in micro-seconds (int), keeping
R66Y 0:80df663dd15e 116 * the period the same.
R66Y 0:80df663dd15e 117 */
R66Y 0:80df663dd15e 118 void pulsewidth_us(int us);
R66Y 0:80df663dd15e 119
R66Y 0:80df663dd15e 120 #ifdef MBED_OPERATORS
R66Y 0:80df663dd15e 121 /* Function: operator=
R66Y 0:80df663dd15e 122 * A operator shorthand for <write()>
R66Y 0:80df663dd15e 123 */
R66Y 0:80df663dd15e 124 PwmOut& operator= (float value);
R66Y 0:80df663dd15e 125 PwmOut& operator= (PwmOut& rhs);
R66Y 0:80df663dd15e 126
R66Y 0:80df663dd15e 127 /* Function: operator float()
R66Y 0:80df663dd15e 128 * An operator shorthand for <read()>
R66Y 0:80df663dd15e 129 */
R66Y 0:80df663dd15e 130 operator float();
R66Y 0:80df663dd15e 131 #endif
R66Y 0:80df663dd15e 132
R66Y 0:80df663dd15e 133 #ifdef MBED_RPC
R66Y 0:80df663dd15e 134 virtual const struct rpc_method *get_rpc_methods();
R66Y 0:80df663dd15e 135 static struct rpc_class *get_rpc_class();
R66Y 0:80df663dd15e 136 #endif
R66Y 0:80df663dd15e 137
R66Y 0:80df663dd15e 138 protected:
R66Y 0:80df663dd15e 139
R66Y 0:80df663dd15e 140 PWMName _pwm;
R66Y 0:80df663dd15e 141
R66Y 0:80df663dd15e 142 };
R66Y 0:80df663dd15e 143
R66Y 0:80df663dd15e 144 } // namespace mbed
R66Y 0:80df663dd15e 145
R66Y 0:80df663dd15e 146 #endif
R66Y 0:80df663dd15e 147
R66Y 0:80df663dd15e 148 #endif