InetrfaceProducts NXP / PCA962x

Dependencies:   CompLedDvr

Dependents:   PCA9626_Hello PCA9624_Hello PCA9622_Hello

Committer:
nxp_ip
Date:
Wed Mar 04 05:59:40 2015 +0000
Revision:
3:40f83904f0a8
API of "LedPwmOut class" implemented

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nxp_ip 3:40f83904f0a8 1 /** LedPwmOut class for LED driver component
nxp_ip 3:40f83904f0a8 2 *
nxp_ip 3:40f83904f0a8 3 * @author Akifumi (Tedd) OKANO, NXP Semiconductors
nxp_ip 3:40f83904f0a8 4 * @version 0.5
nxp_ip 3:40f83904f0a8 5 * @date 04-Mar-2015
nxp_ip 3:40f83904f0a8 6 *
nxp_ip 3:40f83904f0a8 7 * Released under the Apache 2 license License
nxp_ip 3:40f83904f0a8 8 */
nxp_ip 3:40f83904f0a8 9
nxp_ip 3:40f83904f0a8 10 #ifndef MBED_LedPwmOut
nxp_ip 3:40f83904f0a8 11 #define MBED_LedPwmOut
nxp_ip 3:40f83904f0a8 12
nxp_ip 3:40f83904f0a8 13 #include "mbed.h"
nxp_ip 3:40f83904f0a8 14 #include "CompLedDvr.h"
nxp_ip 3:40f83904f0a8 15 #include "LedPwmOut.h"
nxp_ip 3:40f83904f0a8 16
nxp_ip 3:40f83904f0a8 17 /** LedPwmOut class
nxp_ip 3:40f83904f0a8 18 *
nxp_ip 3:40f83904f0a8 19 * @class LedPwmOut
nxp_ip 3:40f83904f0a8 20 *
nxp_ip 3:40f83904f0a8 21 * "LedPwmOut" class works like "PwmOut" class of mbed-SDK.
nxp_ip 3:40f83904f0a8 22 * This class provides API on device's pin level with abstracting the LED controller.
nxp_ip 3:40f83904f0a8 23 *
nxp_ip 3:40f83904f0a8 24 * Example:
nxp_ip 3:40f83904f0a8 25 * @code
nxp_ip 3:40f83904f0a8 26 * #include "mbed.h"
nxp_ip 3:40f83904f0a8 27 * #include "PCA9626.h"
nxp_ip 3:40f83904f0a8 28 *
nxp_ip 3:40f83904f0a8 29 * PCA9632 led_cntlr( p28, p27, 0x3E ); // SDA, SCL, Slave_address(option)
nxp_ip 3:40f83904f0a8 30 * LedPwmOut led( led_cntlr, L0 );
nxp_ip 3:40f83904f0a8 31 *
nxp_ip 3:40f83904f0a8 32 * int main()
nxp_ip 3:40f83904f0a8 33 * {
nxp_ip 3:40f83904f0a8 34 * while( 1 ) {
nxp_ip 3:40f83904f0a8 35 * for( float p = 0.0f; p < 1.0f; p += 0.1f ) {
nxp_ip 3:40f83904f0a8 36 * led = p;
nxp_ip 3:40f83904f0a8 37 * wait( 0.1 );
nxp_ip 3:40f83904f0a8 38 * }
nxp_ip 3:40f83904f0a8 39 * }
nxp_ip 3:40f83904f0a8 40 * }
nxp_ip 3:40f83904f0a8 41 * @endcode
nxp_ip 3:40f83904f0a8 42 */
nxp_ip 3:40f83904f0a8 43 class LedPwmOut
nxp_ip 3:40f83904f0a8 44 {
nxp_ip 3:40f83904f0a8 45 public:
nxp_ip 3:40f83904f0a8 46 LedPwmOut( CompLedDvr &ledp, LedPinName pin_name );
nxp_ip 3:40f83904f0a8 47 virtual ~LedPwmOut();
nxp_ip 3:40f83904f0a8 48
nxp_ip 3:40f83904f0a8 49 virtual void pwm( float v );
nxp_ip 3:40f83904f0a8 50
nxp_ip 3:40f83904f0a8 51 /** A shorthand for write()
nxp_ip 3:40f83904f0a8 52 */
nxp_ip 3:40f83904f0a8 53 LedPwmOut& operator= ( float rhs );
nxp_ip 3:40f83904f0a8 54
nxp_ip 3:40f83904f0a8 55 private:
nxp_ip 3:40f83904f0a8 56 CompLedDvr *leddvrp;
nxp_ip 3:40f83904f0a8 57 LedPinName pin;
nxp_ip 3:40f83904f0a8 58
nxp_ip 3:40f83904f0a8 59 void pwm( int pin, float value );
nxp_ip 3:40f83904f0a8 60 }
nxp_ip 3:40f83904f0a8 61 ;
nxp_ip 3:40f83904f0a8 62
nxp_ip 3:40f83904f0a8 63 #endif // MBED_LedPwmOut