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



Teraz jest 2 gru 2024, o 21:23


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 21 kwi 2016, o 18:43 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 29 maja 2015
Posty: 4
Lokalizacja: Wieliczka/Węgierska Górka
Pomógł: 0

Napisałem procedurę do obsługi klawisza:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Po każdorazowym naciśnięciu klawisza dioda przeskakuje o jedno miejsce aż do momentu gdy wartość zmiennej "efekt==5" - w tym momencie uruchamia się funkcja "miganko". Od tego momentu mam problem bo teoretycznie po naciśnięciu przycisku zmienna "efekt" powinna przyjąć wartość 6 i powinna zaświecić się dioda 6 ale tak się nie dzieje :o Cały czas działa funkcja "miganko" i wduszanie przycisku nic nie zmienia. Siedzę już nad tym kilka godzin i nie mogę wymyślić co jest źle :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2016, o 19:49 
Offline
Użytkownik

Dołączył(a): 26 lip 2015
Posty: 269
Pomógł: 34

Masz delay w funkcji miganko policz ile ona trwa 50ms x 16 = 800ms więc klawisz musisz trzymać przez około 800ms lub więcej. Powinieneś usunąć w jakiś sposób te delay'e. Po za tym przez zmienną a i drugi warunek obsługi klawisza pętla musi obiec 255 razy zanim zmieni się efekt co daje nam 800ms x 255 = 204 sekund więc musisz trzymać klawisz co najmniej przez 204 sekund aby zmienił się efekt. ;)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2016, o 20:06 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 29 maja 2015
Posty: 4
Lokalizacja: Wieliczka/Węgierska Górka
Pomógł: 0

Dzięki :)
Widzę, że muszę doczytać jak te różne pętle krążą.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 kwi 2016, o 22:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Bartek123 napisał(a):
Powinieneś usunąć w jakiś sposób te delay'e.

Poczytaj o timerach programowych.
Pablo Maximus napisał(a):
Widzę, że muszę doczytać jak te różne pętle krążą.

Poczytaj o tablicach (możesz wykorzystać tablicę zamiast tych dwóch pętli for w funkcji miganko).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 kwi 2016, o 10:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 wrz 2013
Posty: 48
Lokalizacja: Gdańsk
Pomógł: 1

Witam.
Przeszukaj poradniki Mirka. W jednym z nich jest rozwiązany ten problem. Mianowicie w delay jest zdefiniowany bardzo krotki czas który działa w pętli i w tej pętli jest funkcja sprawdzająca czy jest wciśnięty jakiś przycisk który przerywa pętle i z niej wychodzi przerywając NATYCHMIAST deleya. Dokładnie jest to opisane w poradniku Mirka

_________________
----------



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO