Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 8 lis 2024, o 20:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 27 paź 2016, o 13:43 
Offline
Użytkownik

Dołączył(a): 05 lis 2013
Posty: 353
Lokalizacja: Kraków
Pomógł: 6

Witajcie.

Niby prosta sprawa, ale przez drgania styków coś nie działa w programie.
Próbowałem już różnych rozwiązań, ale żadne nie przynosi rezultatu. Może ktoś mi pomoże.
Program ma za zadanie po naciśnięciu przycisku zapisać do zmiennej startTime czas z millis() a po puszczeniu przycisku zapisać czas do stopTime. Jeśli wynik jest większy niż 50ms to zapisujemy do zmiennej czas_ms wynik odejmowania.
W funkcji loop wykonujemy przykładowy program jeśli czas_ms jest mniejszy niż 1000ms (tutaj akurat miganie diodą)
Program wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i ogólnie działa, ale niestety nie za każdym naciśnięciem. Dodatkowo co jakiś czas w ogóle nie wchodzi do else i nie resetuje zmiennych button_release i button_press co praktycznie zawiesza program.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2016, o 14:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Witam,
Nie przyjrzałem się dokladnie bo jestem w pracy i to jest w C++.
Czy masz zdefiniowane więcej niż 1 klawisz.
Jeżeli tak to zakomentuj pozostałe i zobacz czy się poprawilo.
Jezeli tak, to wszystko co chcesz wykonać po puszczeniu klawisza wpisz w warunku
Jeżeli wszystkie klawisze puszczone. Bo pomimo naciskania pierwszego w funkcji drugiego systematycznie wykonuje się ostatni warunek.
Mogłem cos przegapić bo czytałem pobieżnie..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2016, o 15:07 
Offline
Użytkownik

Dołączył(a): 05 lis 2013
Posty: 353
Lokalizacja: Kraków
Pomógł: 6

Daro69 napisał(a):
Witam,
Czy masz zdefiniowane więcej niż 1 klawisz.

na razie tylko jeden klawisz pod wejście 2.

przeniosłem to ostatnie else z 39 linijki wyżej po else if (32 linijka) i wydaje się trochę lepiej działać ale dalej daleko jest do właściwego działania.
Coś muszę chyba podejść do tematu jeszcze raz bo nic z tego nie będzie. Funkcja onSteep działa tylko w przerwaniu a potem program ją omija. Chyba będzie trzeba podejść do tematu, że w przerwaniu ustawiamy tylko flagi a w programie głównym na tych flagach będą wykonywane instrukcje.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO