Abstract class for LED driver component. Including "LedPwmOut API" class.
LedPwmOut.h
- Committer:
- nxp_ip
- Date:
- 2015-03-04
- Revision:
- 0:a0e4342d3b3d
File content as of revision 0:a0e4342d3b3d:
/** LedPwmOut class for LED driver component
*
* @author Akifumi (Tedd) OKANO, NXP Semiconductors
* @version 0.5
* @date 04-Mar-2015
*
* Released under the Apache 2 license License
*/
#ifndef MBED_LedPwmOut
#define MBED_LedPwmOut
#include "mbed.h"
#include "CompLedDvr.h"
/** LedPwmOut class
*
* @class LedPwmOut
*
* "LedPwmOut" class works like "PwmOut" class of mbed-SDK.
* This class provides API on device's pin level with abstracting the LED controller.
*
* Example:
* @code
* #include "mbed.h"
* #include "PCA9626.h"
*
* PCA9626 led_cntlr( p28, p27, 0xC4 ); // SDA, SCL, Slave_address(option)
* LedPwmOut led( led_cntlr, L0 );
*
* int main()
* {
* while( 1 ) {
* for( float p = 0.0f; p < 1.0f; p += 0.1f ) {
* led = p;
* wait( 0.1 );
* }
* }
* }
* @endcode
*/
class LedPwmOut
{
public:
/** Create a LedPwmOutCC instance connected to a pin on the LED driver
* A pin which performs PWM and constant current sink
*
* @param ledp Instance of a device (LED driver)
* @param pin_name Specifying pin by LedPinName like 'L7'.
*
* @note
* Pin names of LED driver are defined like L0, L1, L2.. It is not like "LED0".
* Because we cannot use mbed reserved symbols.
*/
LedPwmOut( CompLedDvr &ledp, LedPinName pin_name );
/** Destractor
*/
virtual ~LedPwmOut();
/** Set PWM duty-cycle
*
* @param v Ratio of duty-cycle. '0.0' for 0 %. '1.0' for 99.6 % on PCA9956A and 100 % for PCA9955A.
*/
virtual void pwm( float v );
/** A shorthand for pwm()
*/
LedPwmOut& operator= ( float rhs );
private:
CompLedDvr *leddvrp;
LedPinName pin;
void pwm( int pin, float value );
}
;
#endif // MBED_LedPwmOut