28-10-2014, 9:15
Ponieważ "delay()" jest kolejnym paskudztwem, którego jeżeli tylko się da to trzeba unikać, ponieważ bezproduktywnie zjada czas procesora to można zrobić tak:
zmienne pomocnicze typu buttonstate i lastbuttonstate typu boolean (czyli zerojedynkowe więc małe)
przycisk normalnie podciągnięty wewnętrznie do plusa, po wciśnięciu zwierany do masy
buttonState = digitalRead(stepPin);
if (buttonState != lastButtonState) {
if (buttonState == LOW) { zróbcotrzeba();}
}
lastButtonState = buttonState;
Styki sobie mogą drgać ile chcą, a my się debouncem wogole nie przejmujemy, bo "zróbcotrzeba()" już zostało wykonane. to oczywiście nie rozwiązuje nap problemu ze stuprocentową pewnością, ale :
1. praktyka wykazuje, że stabilność jest bardzo duża
2. unikamy delaya
3. nie odpalamy rakiet z głowicami atomowymi
czasem delaya się nie da uniknąć, np przy czytaniu z seriala albo ustabilizowaniu odczytu z analoga, ale to już trudno
MAc
mrn
PS
akurat w obsłudze klawiatury delay nie jest tragiczny, bo i tak jest szybszy od naszego palca - ale ze względów edukacyjnych przypominam, że mało jest rzeczy gorszych niż wymuszanie TOTALNEGO nic nie robienia procesora. Wszystkie procesy się zatrzymują.
zmienne pomocnicze typu buttonstate i lastbuttonstate typu boolean (czyli zerojedynkowe więc małe)
przycisk normalnie podciągnięty wewnętrznie do plusa, po wciśnięciu zwierany do masy
buttonState = digitalRead(stepPin);
if (buttonState != lastButtonState) {
if (buttonState == LOW) { zróbcotrzeba();}
}
lastButtonState = buttonState;
Styki sobie mogą drgać ile chcą, a my się debouncem wogole nie przejmujemy, bo "zróbcotrzeba()" już zostało wykonane. to oczywiście nie rozwiązuje nap problemu ze stuprocentową pewnością, ale :
1. praktyka wykazuje, że stabilność jest bardzo duża
2. unikamy delaya
3. nie odpalamy rakiet z głowicami atomowymi
czasem delaya się nie da uniknąć, np przy czytaniu z seriala albo ustabilizowaniu odczytu z analoga, ale to już trudno
MAc
mrn
PS
akurat w obsłudze klawiatury delay nie jest tragiczny, bo i tak jest szybszy od naszego palca - ale ze względów edukacyjnych przypominam, że mało jest rzeczy gorszych niż wymuszanie TOTALNEGO nic nie robienia procesora. Wszystkie procesy się zatrzymują.

