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



Teraz jest 28 mar 2024, o 14:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 30 gru 2018, o 13:01 
Offline
Nowy

Dołączył(a): 13 sty 2016
Posty: 11
Lokalizacja: Łopuszno
Pomógł: 0

Witam.
Panowie potrzebuje aby ktoś naprowadził mnie na właściwe tory.
Mam obsługę dwóch przycisków:

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


Obsługa czterech funkcji. Potrzebuje obsłużyć jeszcze jedną funkcję poprzez wciśnięcie
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
oraz
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
jednocześnie. Nie wiem jak sie do tego zabrać. Nie mam pomysłu :?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2018, o 16:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 mar 2014
Posty: 356
Lokalizacja: Pruszków
Pomógł: 15

Jeśli chcesz użyć rozumiem jako argumentu dodatkowej funkcji to po prostu
wystarczy napisać swoją funkcję
wewnątrz której umieścisz więcej funkcji
a ta twoja będzie tylko jednym argumentem.

No chyba, że nie zrozumiałem o co ci konkretnie chodzi.

Pozdrawiam Paweł.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2018, o 19:42 
Offline
Użytkownik
Avatar użytkownika

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

witam,
marcom1983 napisał(a):
Nie wiem jak sie do tego zabrać. Nie mam pomysłu

Myślę że kombinowałbym w funkcji "SuperDebounce", a dokładniej - najpierw w miejscu gdzie jest zabezpieczenie przed wciśnięciem dwóch klawiszy,
potem w miejscach wywoływania funkcji ze wskaźników , np coś:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jakoś w tę stronę.
a może rozbudować zabezpieczenie sprawdzające wciśnięcie dwóch klawiszy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 gru 2018, o 20:31 
Offline
Nowy

Dołączył(a): 13 sty 2016
Posty: 11
Lokalizacja: Łopuszno
Pomógł: 0

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

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

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

to wywoływana jest funkcja
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
.
A teraz jeśli wcisnę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
jednocześnie, to chcę żeby wywołała się funkcja
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2018, o 07:45 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Myślę że to co chcesz zrobić w taki sposób jak piszesz jest niemożliwe.
Sama idea funkcji jest taka że jest ona nieblokująca i działająca w tle
Czyli nigdy nie będzie tak że gdy naciśniesz dwa klawisze coś się stanie innego.
Zawsze któryś będzie pierwszy i ten pierwszy zostanie obsłużony.

Tak sobie myślę że gdybyś zrobił klawisz nazwijmy go "shift"
i oprogramował w ten sposób że naciśnięcie po nim dowolnego klawisza
powoduje zmianę jego obsługi, to wtedy było by OK
Zresztą zobacz jak jest w PC. Nie ma takich stworów jak naciśnięcie
na przykład litery "a" plus "b"
Zawsze jest jakiś klawisz funkcyjny plus dowolny klawisz.

W zasadzie to można by po naciśnięciu klawisza "a" ustawić flagę "a_naciśnięte"
i gdy nie pojawi się "b" po określonym czasie to wykonać standardową obsługę "a"
Tak samo w drugą stronę.
Ale zaczniesz tworzyć całą masę nowych bytów programowych.

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2018, o 09:37 
Offline
Nowy

Dołączył(a): 13 sty 2016
Posty: 11
Lokalizacja: Łopuszno
Pomógł: 0

Na PC
Cytuj:
Nie ma takich stworów jak naciśnięcie
na przykład litery "a" plus "b"

ale już w innych urządzeniach są. Mamy tutaj multi efect do gitary.
Obrazek
Po wciśnięciu pierwszego i drugiego przycisku w tym samym czasie, załącza na się funkcja BYPASS. Jest to powszechnie stosowane rozwiązanie.
W swoim urządzeniu mam dwa przyciski. Jest to wypalanka do styropianu. Początkowo miało być tylko sterowanie mocą dodawanie i odejmowanie mocy od 0% do 100%. A wiadomo że w miarę jedzenia apetyt rośnie to i dopisałem parę funkcji do obsługi zabezpieczenia termicznego, auto/manual spust (przejście z trybu stanby w tryb wypalania), alarm temperaturowy. Pewne ustawienia mogę konfigurować po starcie urządzenia, jednak wartości alarmu, temperatura załączenia wentylatora, histereza wentylatora, są ustawione na stałe w kodzie programu. Naszła mnie ochota aby dopisać menu ustawień. Menu było by aktywowane właśnie przez wciśnięcie dwóch przycisków na raz.
Sam próbowałem w tą stronę:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Wypalarka już jest złożona, więc jakiekolwiek zmiany hardware już nie wchodzą w grę. Urządzenie działa prawidłowo. A aktywowanie tego Menu chcę poprostu zrobić "dla zasady". Tak sobie to wymyśliłem i chciałbym to zrealizować. Tylko jak? :D
Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2018, o 09:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

JarekB napisał(a):
Sama idea funkcji jest taka że jest ona nieblokująca i działająca w tle
Czyli nigdy nie będzie tak że gdy naciśniesz dwa klawisze coś się stanie innego.
Zawsze któryś będzie pierwszy i ten pierwszy zostanie obsłużony.


Dokładnie tak i trzeba po prostu użyć nieco innej techniki obsługi przycisków.

Tak krótko mówiąc można iść w tę stronę:

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


------------------------ [ Dodano po: 1 minucie ]

Tylko nie żadne &
marcom1983 napisał(a):
if(( !(PINB & S_PLUS))&( !(PINB & S_MINUS))){


a dwa znaki && jak pokazałem wyżej - musisz zrozumieć czym różni się operator bitowy od operatora logicznego a w Bluebooku masz to dobrze wyjaśnione, warto zajrzeć i sobie przypomnieć. A przy okazji skoro masz Bluebooka to też dodaj jego ikonkę na dole w podpisie tak jak dodałeś ATB ;)

_________________
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 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 gru 2018, o 15:15 
Offline
Nowy

Dołączył(a): 13 sty 2016
Posty: 11
Lokalizacja: Łopuszno
Pomógł: 0

I powstało 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.


Cytuj:
A przy okazji skoro masz Bluebooka to też dodaj jego ikonkę na dole w podpisie tak jak dodałeś ATB

Mirku mam Bluebook i Greenbook i MkMenu, ATB nie mam, ale myślałem że dobrze dodałem ikony i u mnie się dobrze wyświetla :o
Wracając do tematu to zabieram się za MENU, a z MkMenu to czysta przyjemność.
Pozdrawiam, Wszystkiego Dobrego w Nowym Roku.



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

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