Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned long ButtonTime;
- enum button {ButtonIdle, ButtonWait, ButtonLow};
- enum button ButtonState;
- int ButtonInitialize()
- {
- pinMode(4, INPUT);
- pinMode(13, OUTPUT);
- ButtonState = ButtonWait;
- }
- int ButtonNextState(int press)
- {
- switch (ButtonState) {
- case ButtonIdle:
- if (press == LOW)
- {
- ButtonTime = millis(); // time is measured in milliseconds
- ButtonState = ButtonWait;
- }
- break;
- case ButtonWait:
- if (press == HIGH)
- {
- ButtonState = ButtonIdle;
- }
- else if (millis() - ButtonTime >= 5)
- {
- ButtonState = ButtonLow;
- return 1;
- }
- break;
- case ButtonLow:
- if (press == HIGH) {
- //ButtonState == ButtonIdle;
- if (millis() - ButtonTime < 1000 )
- {
- ButtonState = ButtonIdle;
- return 2;
- }
- else
- {
- ButtonState = ButtonIdle;
- return 3;
- }
- //Serial.println(2);
- }
- break;
- }
- return 0; //Serial.println(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement