Abstract class for LED driver component. Including "LedPwmOut API" class.
LedPwmOut.h@1:8a0aa36b236c, 2015-03-19 (annotated)
- Committer:
- nxp_ip
- Date:
- Thu Mar 19 10:02:44 2015 +0000
- Revision:
- 1:8a0aa36b236c
- Parent:
- 0:a0e4342d3b3d
API document update
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nxp_ip | 0:a0e4342d3b3d | 1 | /** LedPwmOut class for LED driver component |
nxp_ip | 0:a0e4342d3b3d | 2 | * |
nxp_ip | 0:a0e4342d3b3d | 3 | * @author Akifumi (Tedd) OKANO, NXP Semiconductors |
nxp_ip | 0:a0e4342d3b3d | 4 | * @version 0.5 |
nxp_ip | 0:a0e4342d3b3d | 5 | * @date 04-Mar-2015 |
nxp_ip | 0:a0e4342d3b3d | 6 | * |
nxp_ip | 0:a0e4342d3b3d | 7 | * Released under the Apache 2 license License |
nxp_ip | 0:a0e4342d3b3d | 8 | */ |
nxp_ip | 0:a0e4342d3b3d | 9 | |
nxp_ip | 0:a0e4342d3b3d | 10 | #ifndef MBED_LedPwmOut |
nxp_ip | 0:a0e4342d3b3d | 11 | #define MBED_LedPwmOut |
nxp_ip | 0:a0e4342d3b3d | 12 | |
nxp_ip | 0:a0e4342d3b3d | 13 | #include "mbed.h" |
nxp_ip | 0:a0e4342d3b3d | 14 | #include "CompLedDvr.h" |
nxp_ip | 0:a0e4342d3b3d | 15 | |
nxp_ip | 0:a0e4342d3b3d | 16 | /** LedPwmOut class |
nxp_ip | 0:a0e4342d3b3d | 17 | * |
nxp_ip | 0:a0e4342d3b3d | 18 | * @class LedPwmOut |
nxp_ip | 0:a0e4342d3b3d | 19 | * |
nxp_ip | 0:a0e4342d3b3d | 20 | * "LedPwmOut" class works like "PwmOut" class of mbed-SDK. |
nxp_ip | 0:a0e4342d3b3d | 21 | * This class provides API on device's pin level with abstracting the LED controller. |
nxp_ip | 0:a0e4342d3b3d | 22 | * |
nxp_ip | 0:a0e4342d3b3d | 23 | * Example: |
nxp_ip | 0:a0e4342d3b3d | 24 | * @code |
nxp_ip | 0:a0e4342d3b3d | 25 | * #include "mbed.h" |
nxp_ip | 0:a0e4342d3b3d | 26 | * #include "PCA9626.h" |
nxp_ip | 0:a0e4342d3b3d | 27 | * |
nxp_ip | 0:a0e4342d3b3d | 28 | * PCA9626 led_cntlr( p28, p27, 0xC4 ); // SDA, SCL, Slave_address(option) |
nxp_ip | 0:a0e4342d3b3d | 29 | * LedPwmOut led( led_cntlr, L0 ); |
nxp_ip | 0:a0e4342d3b3d | 30 | * |
nxp_ip | 0:a0e4342d3b3d | 31 | * int main() |
nxp_ip | 0:a0e4342d3b3d | 32 | * { |
nxp_ip | 0:a0e4342d3b3d | 33 | * while( 1 ) { |
nxp_ip | 0:a0e4342d3b3d | 34 | * for( float p = 0.0f; p < 1.0f; p += 0.1f ) { |
nxp_ip | 0:a0e4342d3b3d | 35 | * led = p; |
nxp_ip | 0:a0e4342d3b3d | 36 | * wait( 0.1 ); |
nxp_ip | 0:a0e4342d3b3d | 37 | * } |
nxp_ip | 0:a0e4342d3b3d | 38 | * } |
nxp_ip | 0:a0e4342d3b3d | 39 | * } |
nxp_ip | 0:a0e4342d3b3d | 40 | * @endcode |
nxp_ip | 0:a0e4342d3b3d | 41 | */ |
nxp_ip | 0:a0e4342d3b3d | 42 | class LedPwmOut |
nxp_ip | 0:a0e4342d3b3d | 43 | { |
nxp_ip | 0:a0e4342d3b3d | 44 | public: |
nxp_ip | 0:a0e4342d3b3d | 45 | |
nxp_ip | 0:a0e4342d3b3d | 46 | /** Create a LedPwmOutCC instance connected to a pin on the LED driver |
nxp_ip | 0:a0e4342d3b3d | 47 | * A pin which performs PWM and constant current sink |
nxp_ip | 0:a0e4342d3b3d | 48 | * |
nxp_ip | 0:a0e4342d3b3d | 49 | * @param ledp Instance of a device (LED driver) |
nxp_ip | 0:a0e4342d3b3d | 50 | * @param pin_name Specifying pin by LedPinName like 'L7'. |
nxp_ip | 0:a0e4342d3b3d | 51 | * |
nxp_ip | 0:a0e4342d3b3d | 52 | * @note |
nxp_ip | 0:a0e4342d3b3d | 53 | * Pin names of LED driver are defined like L0, L1, L2.. It is not like "LED0". |
nxp_ip | 0:a0e4342d3b3d | 54 | * Because we cannot use mbed reserved symbols. |
nxp_ip | 0:a0e4342d3b3d | 55 | */ |
nxp_ip | 0:a0e4342d3b3d | 56 | LedPwmOut( CompLedDvr &ledp, LedPinName pin_name ); |
nxp_ip | 0:a0e4342d3b3d | 57 | |
nxp_ip | 0:a0e4342d3b3d | 58 | /** Destractor |
nxp_ip | 0:a0e4342d3b3d | 59 | */ |
nxp_ip | 0:a0e4342d3b3d | 60 | virtual ~LedPwmOut(); |
nxp_ip | 0:a0e4342d3b3d | 61 | |
nxp_ip | 0:a0e4342d3b3d | 62 | /** Set PWM duty-cycle |
nxp_ip | 0:a0e4342d3b3d | 63 | * |
nxp_ip | 0:a0e4342d3b3d | 64 | * @param v Ratio of duty-cycle. '0.0' for 0 %. '1.0' for 99.6 % on PCA9956A and 100 % for PCA9955A. |
nxp_ip | 0:a0e4342d3b3d | 65 | */ |
nxp_ip | 0:a0e4342d3b3d | 66 | virtual void pwm( float v ); |
nxp_ip | 0:a0e4342d3b3d | 67 | |
nxp_ip | 0:a0e4342d3b3d | 68 | /** A shorthand for pwm() |
nxp_ip | 0:a0e4342d3b3d | 69 | */ |
nxp_ip | 0:a0e4342d3b3d | 70 | LedPwmOut& operator= ( float rhs ); |
nxp_ip | 0:a0e4342d3b3d | 71 | |
nxp_ip | 0:a0e4342d3b3d | 72 | private: |
nxp_ip | 0:a0e4342d3b3d | 73 | CompLedDvr *leddvrp; |
nxp_ip | 0:a0e4342d3b3d | 74 | LedPinName pin; |
nxp_ip | 0:a0e4342d3b3d | 75 | |
nxp_ip | 0:a0e4342d3b3d | 76 | void pwm( int pin, float value ); |
nxp_ip | 0:a0e4342d3b3d | 77 | } |
nxp_ip | 0:a0e4342d3b3d | 78 | ; |
nxp_ip | 0:a0e4342d3b3d | 79 | |
nxp_ip | 0:a0e4342d3b3d | 80 | #endif // MBED_LedPwmOut |