kiln_controller/firmware/controller/pushbutton.h

40 wiersze
721 B
C
Czysty Zwykły widok Historia

2014-11-29 17:04:33 +00:00
class pushbutton : public CallBackInterface
{
public:
2015-02-22 04:47:58 +00:00
int n_clicks;
2014-11-29 17:04:33 +00:00
uint8_t pin;
unsigned int interval;
unsigned long last;
pushbutton (uint8_t _pin, unsigned int _interval): pin(_pin) , interval(_interval) {
dir = 0;
n_clicks = 0;
last = 0;
init();
};
void cbmethod() {
last = millis();
};
void update() {
if (last != 0 && (millis() - last) > interval) {
n_clicks += dir;
last = 0;
}
}
void setDir(int d) {
dir = d;
}
private:
int dir;
void init () {
pinMode(pin, INPUT);
digitalWrite(pin, HIGH);
2015-02-22 04:47:58 +00:00
PCintPort::attachInterrupt(pin, this, CHANGE);
2014-11-29 17:04:33 +00:00
};
};