Странно работает код
- Войдите на сайт для отправки комментариев
Чт, 25/07/2013 - 21:26
byte btn2 = 8; // кнопка 2 byte btn3 = 7; // кнопка 3 byte i,e,n1,n2; static uint32_t millis_prev; void setup() { pinMode(btn2, INPUT); pinMode(btn3, INPUT); digitalWrite(btn2, HIGH); //включаем подтягивающий резистор digitalWrite(btn3, HIGH); //включаем подтягивающий резистор Serial.begin(9600); } void loop() { i=2; if (i==2) { e=(dreb(btn2)); if (e==1) { n1++; } e=(dreb(btn3)); if (e==1) { n2++; } } Serial.println(n1); Serial.println(n2); delay(5); } byte dreb(byte btn) { byte val = digitalRead(btn); if(val==LOW) { if(millis()-millis_prev >= 100) { millis_prev = millis(); return 1; } } if(val==HIGH) { millis_prev = millis(); return 0; } }
По задумке скетч должен при нажатии кнопки 1 или кнопки 2 каждые 0.1 сек увеличивать значение n1 и n2 соответственно. Но почему-то функция dreb возвращает 1 только если нажаты одновременно обе кнопки. Подскажите как исправить?
Надо закомментировать строку 51.