Vroobee napisał(a):
Pierwsza z nich to debouncing przycisku w przerwaniu INT0/INT1 w ATmedze 328p
Vroobee napisał(a):
ale chciałem się dowiedzieć czy to jest optymalne rozwiązanie do eliminacji drgań styków
Przepraszam uprzejmie, nie chodzi mi o to żeby dogryzać czy jakieś przytyki robić - no ale to jest pomysł zupełnie i to totalnie z kosmosu. W ogóle po co ten IF w przerwaniu
toż ty rozbroiłeś tę moją procedurę z bloga ... i jakieś resztki jej ciała wrzuciłeś do przerwania. Ten IF w przerwaniu nigdy nie zadziała - po co on tam w ogóle ?
Nie masz żadnego debouncingu - ot reaguje ci przerwanie przy pierwszym zboczu i to tyle - a jak przyjdą inne przerwania w wyniku drgań to też się wykona ich cała seria
...
sam przeanalizuj przez chwilę ten kod który pokazałeś to się zdziwisz
i solidnie uśmiejesz gwarantuję
ustawiasz key_lock na 1, po to żeby za chwilę sprawdzać czy jest różny od zera i niby gdy klawisz wciśnięty to go zwiększasz o jeden i po co ? skoro za chwilę poleci kolejne przerwanie a ty znowu key_lock na 1 ustawiasz
toż te linie kompletnie nie mają sensu w tym przerwaniu, jak byś zostawił tylko te dwie
menu_state = 1;
timer = 0;
to działać ci będzie tak samo ...
CAŁA zaleta tej mojej procedury z bloga polega na tym, że działa bez użycia przerwań i działa bardzo dobrze ...
Vroobee napisał(a):
Za cholerę nie chce mi to działać przy wykorzystaniu tej funkcji np. w takim zapisie:
Bo nie rozumiesz jak działa ta funkcja ... ona nie jest blokująca i gdy nic nie nadleci to zwróci ZERO ...
ty może jeszcze nie do końca rozumiesz jak działają bufory cykliczne ... funkcja getc pozwala pobierać pojedyncze znaki z tego bufora ale jeśli coś do niego dotarło ...
tyle razy pisałem i pokazuję w poradnikach wideo - że pełny i śliczny odbiór ale UWAGA! stringów czyli komunikację ASCII i to na zdarzeniach pokazałem dopiero w Greenbooku - którego polecam
zaś w Bluebooku pokazałem jak za pomocą funkcji getc pobierać sobie pojedyncze znaki - ale pewnie nie zajrzałeś do tego przykładu w książce (na pendrive/albo na CD)
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]