Странно работает код
- Войдите на сайт для отправки комментариев
Чт, 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.