Lab 1 Program C
Fork of mbed by
Diff: PwmOut.h
- Revision:
- 0:82220227f4fa
- Child:
- 1:6b7f447ca868
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PwmOut.h Tue Apr 08 14:12:21 2008 +0000 @@ -0,0 +1,138 @@ +/* mbed Microcontroller Library - PwmOut + * Copyright (c) 2007-2008, sford + */ + +#ifndef MBED_PWMOUT_H +#define MBED_PWMOUT_H + +#include "Base.h" + +namespace mbed { + +/* Class: PwmOut + * A pulse-width modulation digital output + */ +class PwmOut : public Base { + +public: + + /* Group: Configuration Methods */ + + /* Constructor: PwmOut + * Create a PwmOut connected to the specified pin + * + * Variables: + * pin - PwmOut pin to connect to (21-26) + */ + PwmOut(int pin); + + /* Group: Access Methods (Analog-like) */ + + /* 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_v + * Set the output duty-cycle, specified in volts (float) + * + * Variables: + * v - A floating-point value representing the output duty-cycle, + * specified in volts. The value should lie between + * 0.0f (representing 0v / 0% on) and 3.3f (representing 3.3v / 100% on). + * Values outside this range will be saturated to 0.0f or 3.3f. + */ + void write_v(float v); + + /* Function: write_mv + * Set the output duty-cycle, specified in mili-volts (int) + * + * Variables: + * mv - An integer value representing the output duty-cycle, + * specified in milli-volts. The value should lie between + * 0 (representing 0v / 0% on) and 3300 (representing 3.3v / 100% on). + * Values outside this range will be saturated to 0 or 3300. + */ + void write_mv(int mv); + + /* 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>. + */ + float read(); + + /* Group: Access Methods (Pulse-width) */ + + /* Function: period + * Set the PWM period, specified in seconds (float) + * + * Note: + * This is common to all PwmOut's, so changing it on one will change them all + */ + void period(float seconds); + + /* Function: pulsewidth + * Set the PWM pulsewidth, specified in seconds (float) + */ + void pulsewidth(float seconds); + + /* Function: period_ms + * Set the PWM period, specified in milli-seconds (int) + * + * Note: + * This is common to all PwmOut's, so changing it on one will change them all + */ + void period_ms(int ms); + + /* Function: pulsewidth_ms + * Set the PWM pulsewidth, specified in milli-seconds (int) + */ + void pulsewidth_ms(int ms); + + /* Function: period_us + * Set the PWM period, specified in micro-seconds (int) + * + * Note: + * This is common to all PwmOut's, so changing it on one will change them all + */ + void period_us(int us); + + /* Function: pulsewidth_us + * Set the PWM pulsewidth, specified in micro-seconds (int) + */ + void pulsewidth_us(int us); + + /* Group: Access Method Shorthand */ + + /* Function: operator= + * A shorthand for <write> + */ + PwmOut& operator= (float percent); + PwmOut& operator= (PwmOut& rhs); + + /* Function: operator float() + * A shorthand for <read> + */ + operator float(); + +protected: + + int _id; +}; + +} + +#endif \ No newline at end of file