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
LED_line.h
- Committer:
- Pythia
- Date:
- 2020-06-13
- Revision:
- 1:1e448c750b63
- Parent:
- 0:225e4447fdd3
- Child:
- 3:9262b505d7a8
File content as of revision 1:1e448c750b63:
#include "mbed.h" #define LED_OFF 1 #define LED_ON 0 //#define L_CYCLE 2400 #define L_CYCLE 1000 #define L_LED_OFF ((unsigned long int)(0.002*L_CYCLE)) #define L_LED_ON ((unsigned long int)(0.100*L_CYCLE)) #define RAMP_SLOPE 20 #define ON_TIMEOUT 1000 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; };