class PinListener
{
private:
void (*_reference)(int, int);
int _milliseconds;
int _signal;
int _pin;
public:
void listen()
{
int signal = digitalRead(_pin);
if (signal == _signal)
{
return;
}
int local_millis = millis();
int elapsed_time = local_millis - _milliseconds;
_reference(signal, elapsed_time);
_milliseconds = local_millis;
_signal = signal;
}
PinListener(int pin, void (*reference)(int, int))
{
pinMode(pin, INPUT);
_reference = reference;
_pin = pin;
}
};
void pin_handler(int signal, int milliseconds)
{
}
PinListener pin_listener(11, pin_handler);
To embed this project on your website, copy the following code and paste it into your website's HTML: