ATNEL tech-forum https://forum.atnel.pl/ |
|
eliminacja drgań styków https://forum.atnel.pl/topic20774.html |
Strona 1 z 1 |
Autor: | mateusz19955 [ 23 maja 2018, o 09:07 ] |
Tytuł: | eliminacja drgań styków |
Witam, mam problem z eliminacją drgań styków w switch. Próbuję to wykonać za pomącą przerwań, i nawet napisałem jakiś program. Tylko nie wiem czy to będzie tak działało jak bym chciał. Czas trwania eliminacji drgań ma wynosić 200ms. język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ten program na pewno będzie odczekiwał jakiś czas po wciśnięciu klawisza S_PLUS, tylko wydaję mi się że nie zawsze 200ms. Jeżeli nacisnę przycisk w momencie gdy zmienna licznik już ma wartość 1 to opóźnienie może trwać 100ms albo nawet krócej bo np. za 20ms nastąpi przerwanie i ustawi mi licznik na wartość 2. Czy moje przemyślenia są prawidłowe? Jeżeli tak to w jaki sposób mogę pozbyć się tych drgań przy użyciu przerwań? |
Autor: | sredni [ 23 maja 2018, o 10:09 ] |
Tytuł: | Re: eliminacja drgań styków |
Zerknij na to http://mirekk36.blogspot.co.uk/2012/10/ ... 2.html?m=1 Najlepiej przeczytaj od początku. |
Autor: | Alef2 [ 23 maja 2018, o 11:29 ] |
Tytuł: | Re: eliminacja drgań styków |
Pomysł dobry, ale realizacja już nie koniecznie. Zauważ, ze zmienna licznik jest zwiększana za każdym wywołaniem przerwania. Oznacza to, że stan: przyciśnięty przycisk i licznik równy 2, będzie nieprawdopodobne. Zerowanie tego licznika też będzie dziełem przypadku. Licznik powinien zacząć liczyć od momentu przyciśnięcia przycisku. Zmienna "sprawdzana w programie" powinna być modyfikowana natychmiast po przyciśnięciu przycisku, a nie po 200ms. I kod funkcji klawisze jest na tyle krótki, ze przynajmniej ja nie tworzyłbym funkcji, a kod umieściłbym w obsłudze przerwania |
Autor: | mateusz19955 [ 24 maja 2018, o 14:04 ] |
Tytuł: | Re: eliminacja drgań styków |
Dobra, pokombinowałem trochę i wyszło mi coś takiego:' język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Program działa bez żadnych problemów. Mam tylko pytanie, czy w ten sposób można pisać programy? Czy to jest dobrze napisane? Chodzi mi o to wyłączanie i włączanie timera. |
Autor: | SunRiver [ 25 maja 2018, o 17:28 ] |
Tytuł: | Re: eliminacja drgań styków |
estetyka to chyba dość indywidualne podejście , zaś inną sprawą że jest tle rozwiązań ilu programistów widzisz np ja nigdy się nie przejmowałem bounce czy debouce czy belonce bo uważam że pisanie w tym celu softu to strata zasobów i niepotrzebne kombinacje na rozwiązanie czegoś co wszyscy udawadniają że istnieje , ja problem rozwiązuję sprzętowo i zawsze jest ok:) https://www.sunduino.pl/albo-bounce-albo-debounce/ tak ... ale to moje podejście zaś tu wykazałeś się myśleniem i szukaniem rozwiązania co na pewno cię czegoś nauczyło choć np z mojego punktu widzenia bez urazy oczywiście zmarnowałeś sporo czasu i powietrza na coś co można rozwiązać prościej i szybciej |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |