Abstract class for LED driver component. Including "LedPwmOut API" class.
LedPwmOut.h
- Committer:
- nxp_ip
- Date:
- 2015-03-19
- Revision:
- 1:8a0aa36b236c
- Parent:
- 0:a0e4342d3b3d
File content as of revision 1:8a0aa36b236c:
/** 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