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.

Składnia: [ Pobierz ] [ Ukryj ]
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:'

Składnia: [ Pobierz ] [ Ukryj ]
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/