Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: tsi_sensor MMA8451Q
Diff: LED_line.h
- Revision:
- 0:225e4447fdd3
- Child:
- 1:1e448c750b63
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LED_line.h Sun Jun 07 19:50:51 2020 +0000 @@ -0,0 +1,45 @@ +#include "mbed.h" + +#define LED_OFF 1 +#define LED_ON 0 + +#define L_CYCLE 2400 + +#define L_LED_OFF ((unsigned long int)(0.01*L_CYCLE)) +#define L_LED_ON ((unsigned long int)(0.99*L_CYCLE)) + +#define RAMP_SLOPE 50 +#define ON_TIMEOUT 500 + + +class LED_line +{ +public: + LED_line ( const PinName led_pin, + const unsigned long int led_min_in=L_LED_OFF, + const unsigned long int led_max_in=L_LED_ON, + const unsigned long int led_cycle_in=L_CYCLE, + const bool mode=false ); + void light(const unsigned int lenght=RAMP_SLOPE, const unsigned int timeout=ON_TIMEOUT); + void dark(const unsigned int lenght=RAMP_SLOPE); + inline void level(const unsigned long int led_level) {current_light = led_level; return; }; + inline unsigned long int level(void) { return current_light; }; + enum state_type {IDLE=0, UP, FULL, DOWN, DARK}; + enum state_type state(void); + void LED_run(void); + ~LED_line(); +private: + inline int LED_PWM_F(const unsigned long int in) {return ((this->cnt < (in)) ? LED_ON : LED_OFF); }; + inline int LED_PWM_B(const unsigned long int in) {return ((this->cnt > (this->led_cycle - (in))) ? LED_ON : LED_OFF); }; + DigitalOut *led; + const unsigned long int led_min; + const unsigned long int led_max; + const unsigned long int led_cycle; + const bool led_mode; + unsigned long int cnt; + enum state_type state_value; + unsigned int delta; + unsigned int timeout; + unsigned long int current_light; +}; +