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



Teraz jest 23 gru 2024, o 23:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 22 kwi 2013, o 22:49 
Offline
Nowy

Dołączył(a): 27 paź 2011
Posty: 20
Pomógł: 0

Chcę zrobić nieblokującą obsługę kilku przycisków na raz i prawie działają moje wypociny, ale nie ogarniam, dlaczego nie chcą działać na raz. Tzn Jeśli wcisnę przycisk 2 i przytrzymam, to wciskając 1 wywołuje się zmiana ( w tym przypadku wypełnienia PWM ) dla obu kanałów, ale trzymając 1, wciskanie drugiego nie działa i wciskając oba na raz działa tylko pierwszy.
Utworzyłem tablicę "ButtonTable[5][4]" gdzie:
[x][0] = pin przycisku np. (1<<PD2)
[x][1] = flaga kierunku - jaśniej / ciemniej
[x][2] = debounce
[x][3] = flaga czy wciśnięty

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


Gdzie zbłądziłem?
A może w ogóle nie tędy droga?

pzdr



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2013, o 18:23 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Kod jest w porządku. Może błąd jest w funkcji brightChanger.

PS.
Wygodniej zamiast tablicy 2 wymiarowej byłoby użyć tablicy struktur.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 kwi 2013, o 21:34 
Offline
Nowy

Dołączył(a): 27 paź 2011
Posty: 20
Pomógł: 0

Dzięki za odp.
Ale brightChanger jest raczej ok, bo pilotem działa zmiana kilku kanałów na raz, a zresztą nie ma co tu być "skopane":
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W pętli głównej jest sprawdzane czy trzeba zmienić wypełnienie i jeśli tak, to zmiana z odpowiednim opóźnieniem do czułości oka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 kwi 2013, o 17:05 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Podejrzewam, że jest tu błąd, bo poniższe linie są mało logiczne.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak sprawdzasz pwm[diode_nr][0] to powinieneś wpisywać do pwm[diode_nr][0] a nie do pwm[diode_nr][1]. Jaki rozmiar ma tablica pwm? Możliwe, że wpisując 1 do pwm[diode_nr][2] zmieniasz sobie jasność następnej diody.
Polecam strukturę, bo wtedy nazwa pola informuje o tym co zmieniasz lub chociaż zastąpienie 0 i 1 odpowiednimi definicjami np.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 23:43 
Offline
Nowy

Dołączył(a): 27 paź 2011
Posty: 20
Pomógł: 0

W końcu znalazłem chwilę żeby się temu przyjrzeć i okazało się że podwójny przełącznik którego używam po wciśnięciu pierwszego rozwierał masę od drugiego! Rozebrałem, połączyłem i jest ok. Ehh ale namieszał :).
Dzięki za pomoc.

PZDR.



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