Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int test1 = 0;
- boolean blocklast = false;
- unsigned long MB[6] = {34, 39, 35, 0, 5, 6};
- unsigned long MyPreviousMillis[6], tempstate[6], lastAtm, tm;
- unsigned long laststate[6] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
- void setup() {
- // put your setup code here, to run once:
- for (int MyButton = 0; MyButton <= 1; MyButton++)
- pinMode(MB[MyButton], INPUT);
- Serial.begin(115200);
- }
- void loop() {
- tm = millis();
- if ((tm - lastAtm) >= 100UL ) //Abtastrate //Entprellung
- {
- lastAtm = tm; //Letzte abtastung setzen
- if ((!tempstate[0] && !laststate[0] && !tempstate[1] && !laststate[1]))
- {
- test1 = 0;
- laststate[0] = HIGH;
- laststate[1] = HIGH;
- tempstate[0] = HIGH;
- tempstate[1] = HIGH;
- } else
- for (int MyButton = 0; MyButton <= 1; MyButton++) { //Buttons durchgehen
- tempstate[MyButton] = digitalRead(MB[MyButton]); //Button einlesen
- if ( tempstate[MyButton] == LOW) { //Gedrückt?
- if (!laststate[MyButton]) { //War der Button vorher schon gedrückt?
- if ( tm - MyPreviousMillis[MyButton] >= 200) {//wiederholzeit bei gedrückt
- MyPreviousMillis[MyButton] = tm;
- blocklast = true; //Blockiere beim loslassen einen weiteren Auslöser
- if (MyButton == 0)Serial.println(--test1); else if (MyButton == 1)Serial.println(++test1); //Mache hier was für den jeweiligen Button, bestenfalls switch-case
- }
- } //Ende:War der Button vorher schon gedrückt?
- laststate[MyButton] = tempstate[MyButton];
- } else {
- if (laststate[MyButton] == LOW) { //War der Button vorher gedrückt?
- if (MyButton == 0 && !blocklast)Serial.println(--test1);
- if (MyButton == 1 && !blocklast)Serial.println(++test1);
- blocklast = false;
- laststate[MyButton] = HIGH;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement