config AX12

Fork of configure_ax12_test_bras_module by CRAC Team

Committer:
clementlignie
Date:
Wed Feb 01 13:42:30 2017 +0000
Revision:
2:91b6646ea994
Parent:
0:c03cffe402df
config AX12

Who changed what in which revision?

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