mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-11-03 14:33:37 +03:00 
			
		
		
		
	* Implementation of Functional and Scheduled option in Ticker lib * Update example formatting * More example updates * More updates to example * More updates to example
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include "Arduino.h"
 | 
						|
#include "Ticker.h"
 | 
						|
 | 
						|
#define LED1  2
 | 
						|
#define LED2  4
 | 
						|
#define LED3  12
 | 
						|
#define LED4  14
 | 
						|
#define LED5  15
 | 
						|
 | 
						|
 | 
						|
class ExampleClass {
 | 
						|
  public:
 | 
						|
    ExampleClass(int pin, int duration) : _pin(pin), _duration(duration) {
 | 
						|
      pinMode(_pin, OUTPUT);
 | 
						|
      _myTicker.attach_ms(_duration, std::bind(&ExampleClass::classBlink, this));
 | 
						|
    }
 | 
						|
    ~ExampleClass() {};
 | 
						|
 | 
						|
    int _pin, _duration;
 | 
						|
    Ticker _myTicker;
 | 
						|
 | 
						|
    void classBlink() {
 | 
						|
      digitalWrite(_pin, !digitalRead(_pin));
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
void staticBlink() {
 | 
						|
  digitalWrite(LED2, !digitalRead(LED2));
 | 
						|
}
 | 
						|
 | 
						|
void scheduledBlink() {
 | 
						|
  digitalWrite(LED3, !digitalRead(LED2));
 | 
						|
}
 | 
						|
 | 
						|
void parameterBlink(int p) {
 | 
						|
  digitalWrite(p, !digitalRead(p));
 | 
						|
}
 | 
						|
 | 
						|
Ticker staticTicker;
 | 
						|
Ticker scheduledTicker;
 | 
						|
Ticker parameterTicker;
 | 
						|
Ticker lambdaTicker;
 | 
						|
 | 
						|
ExampleClass example(LED1, 100);
 | 
						|
 | 
						|
 | 
						|
void setup() {
 | 
						|
  pinMode(LED2, OUTPUT);
 | 
						|
  staticTicker.attach_ms(100, staticBlink);
 | 
						|
 | 
						|
  pinMode(LED3, OUTPUT);
 | 
						|
  scheduledTicker.attach_ms_scheduled(100, scheduledBlink);
 | 
						|
 | 
						|
  pinMode(LED4, OUTPUT);
 | 
						|
  parameterTicker.attach_ms(100, std::bind(parameterBlink, LED4));
 | 
						|
 | 
						|
  pinMode(LED5, OUTPUT);
 | 
						|
  lambdaTicker.attach_ms(100, []() {
 | 
						|
    digitalWrite(LED5, !digitalRead(LED5));
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
void loop() {
 | 
						|
}
 |