First commit. Non blocking Led and Buzzer library
Dependents: non_blocking_Led_Buzze_HelloWorld
Led.h
- Committer:
- tsungta
- Date:
- 2016-11-21
- Revision:
- 0:c18c119011ec
File content as of revision 0:c18c119011ec:
/******************** (C) COPYRIGHT 2016 Delta Electronics, Inc. ***************
*
* File Name : Led.h
* Authors : Tsungta Wu - CPBG (tsungta.wu@deltaww.com)
* Version : V.1.0.1
* Date : 2016/Nov/14
*
*******************************************************************************/
/** class to make control LED on/off fashion using GPIO
* The class use a timer to change led on/off - it is not blocking while scheduling led on/off
*
* Example:
* @code
* #include "mbed.h"
* #include "Led.h"
*
* Led led(LED1);
*
*#define schedule_num 7
*float toggle[schedule_num] = {1, 1, 1, 0, 1, 0, 1};
* int main() {
* ...
* led.simpleBlink(0.5); //turn on led for 0.5 second
* ...
* led.toggleLed(toggle, schedule_num, 0.5); //change led to on or off every 0.5 second
* ...
* }
* @endcode
*/
#ifndef MBED_LED_H
#define MBED_LED_H
#include "mbed.h"
namespace mbed {
/* Class: Led
* A class witch uses DigitalOut to on/off LED.
* The class use a timer to toggle - it is not blocking
*/
class Led {
public:
Led (PinName pin, uint8_t On_Logic = 0);
/** Turn on LED with given duration.
*
* @param time - the LED on duration in seconds
*/
void simpleBlink (float time);
/** Toggle LED with given sequence and duration.
*
* @param toggle_on_off - the on/off controlling sequence
* @param toggle_num - the total number of the on/off operation
* @param tonggle_time - the duration of each on/off operation in seconds
*/
void toggleLed (uint8_t* toggle_on_off, uint16_t toggle_num, float tonggle_time);
/** turn off the Led instantaneous
* usually not used
*/
void offLed();
private :
void nextToggle();
DigitalOut _led;
Timeout tnext;
PinName _debug;
};
}
#endif