Lab 1 Program C
Fork of mbed by
Diff: PwmOut.h
- Revision:
- 11:1c1ebd0324fa
- Parent:
- 5:62573be585e9
- Child:
- 18:b3c9f16cbb96
--- a/PwmOut.h Thu May 14 14:44:00 2009 +0000 +++ b/PwmOut.h Fri Aug 28 12:10:11 2009 +0000 @@ -1,10 +1,14 @@ /* mbed Microcontroller Library - PwmOut - * Copyright (c) 2007-2008, sford - */ + * Copyright (c) 2007-2009 ARM Limited. All rights reserved. + * sford + */ #ifndef MBED_PWMOUT_H #define MBED_PWMOUT_H +#include "platform.h" +#include "PinNames.h" +#include "PeripheralNames.h" #include "Base.h" namespace mbed { @@ -12,101 +16,112 @@ /* Class: PwmOut * A pulse-width modulation digital output * - * Implementation Note: - * The period is is common to all PwmOut's, so changing it on one PwmOut will change them all! + * Example + * > // Fade a led on. + * > #include "mbed.h" + * > + * > PwmOut led(LED1); + * > + * > int main() { + * > while(1) { + * > led = led + 0.01; + * > wait(0.2); + * > if(led == 1.0) { + * > led = 0; + * > } + * > } + * > } */ class PwmOut : public Base { public: - /* Constructor: PwmOut - * Create a PwmOut connected to the specified pin - * - * Variables: - * pin - PwmOut pin to connect to (21-26) - */ - PwmOut(int pin, const char *name = NULL); + /* Constructor: PwmOut + * Create a PwmOut connected to the specified pin + * + * Variables: + * pin - PwmOut pin to connect to + */ + PwmOut(PinName pin, const char *name = NULL); - /* Function: write - * Set the ouput duty-cycle, specified as a percentage (float) - * - * Variables: - * percent - A floating-point value representing the output duty-cycle, - * specified as a percentage. The value should lie between - * 0.0f (representing 0v / on 0%) and 1.0f (representing 3.3v / on 100%). - * Values outside this range will be saturated to 0.0f or 1.0f. - */ - void write(float percent); + /* Function: write + * Set the ouput duty-cycle, specified as a percentage (float) + * + * Variables: + * value - A floating-point value representing the output duty-cycle, + * specified as a percentage. The value should lie between + * 0.0f (representing on 0%) and 1.0f (representing on 100%). + * Values outside this range will be saturated to 0.0f or 1.0f. + */ + void write(float value); - - /* Function: read - * Return the current output duty-cycle setting, measured as a percentage (float) + /* Function: read + * Return the current output duty-cycle setting, measured as a percentage (float) * * Variables: - * returns - A floating-point value representing the current duty-cycle being output on the pin, - * measured as a percentage. The returned value will lie between - * 0.0f (representing 0v / 0% on) and 1.0f (representing 3.3v / 100% on). - * - * Note: - * This value may not match exactly the value set by a previous <write>. - */ + * returns - A floating-point value representing the current duty-cycle being output on the pin, + * measured as a percentage. The returned value will lie between + * 0.0f (representing on 0%) and 1.0f (representing on 100%). + * + * Note: + * This value may not match exactly the value set by a previous <write>. + */ float read(); - - /* Function: period - * Set the PWM period, specified in seconds (float) - */ - void period(float seconds); + + /* Function: period + * Set the PWM period, specified in seconds (float) + */ + void period(float seconds); - /* Function: period_ms - * Set the PWM period, specified in milli-seconds (int) - */ - void period_ms(int ms); + /* Function: period_ms + * Set the PWM period, specified in milli-seconds (int) + */ + void period_ms(int ms); - /* Function: period_us - * Set the PWM period, specified in micro-seconds (int) - */ - void period_us(int us); + /* Function: period_us + * Set the PWM period, specified in micro-seconds (int) + */ + void period_us(int us); - /* Function: pulsewidth - * Set the PWM pulsewidth, specified in seconds (float) - */ - void pulsewidth(float seconds); - - /* Function: pulsewidth_ms - * Set the PWM pulsewidth, specified in milli-seconds (int) - */ - void pulsewidth_ms(int ms); - - /* Function: pulsewidth_us - * Set the PWM pulsewidth, specified in micro-seconds (int) - */ - void pulsewidth_us(int us); + /* Function: pulsewidth + * Set the PWM pulsewidth, specified in seconds (float) + */ + void pulsewidth(float seconds); + + /* Function: pulsewidth_ms + * Set the PWM pulsewidth, specified in milli-seconds (int) + */ + void pulsewidth_ms(int ms); + + /* Function: pulsewidth_us + * Set the PWM pulsewidth, specified in micro-seconds (int) + */ + void pulsewidth_us(int us); - /* Function: operator= - * A operator shorthand for <write()> - */ - PwmOut& operator= (float percent); - PwmOut& operator= (PwmOut& rhs); +#ifdef MBED_OPERATORS + /* Function: operator= + * A operator shorthand for <write()> + */ + PwmOut& operator= (float value); + PwmOut& operator= (PwmOut& rhs); - /* Function: operator float() - * An operator shorthand for <read()> - */ - operator float(); + /* Function: operator float() + * An operator shorthand for <read()> + */ + operator float(); +#endif - // functions to be dropped in time... - void write_v(float v); - void write_mv(int mv); - +#ifdef MBED_RPC virtual const struct rpc_method *get_rpc_methods(); static struct rpc_class *get_rpc_class(); +#endif - protected: - int _id; + PWMName _pwm; + }; -} +} // namespace mbed #endif -