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



Teraz jest 29 mar 2024, o 09:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 27 lut 2018, o 17:17 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Witam koleżanki i kolegów.

Używam biblioteki Mirka MK_enkoder wersja 1 ta darmowa.

Mam problem mianowicie, że chce aby po kliknieciu swicha i przytrzymaniu go np 5 sec.
to żeby się np wywołało menu,

nie mogę tego wymyślić jak to zrobić,

na tą chwile akcja jest taka jak Mirek to oprogramowa,ł czyli od razu poprzez funkcje kolbekowe
wywołuje to co sie chce czyli flagi czy inne funkcje itp.

a ja potrzebuję dodatkową opcje dla klawisza, zdarzenie od długiego trzymania.

sam nie mogę wymóżdzyć jak to oprogramowac,
_



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2018, o 17:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

No przecież przycisk enkodera obrabiasz tak jak zwykły przycisk i nawet możesz to zrobić przy pomocy superdebounce.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2018, o 18:04 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

ano, czyli wprost z bloga Mirka do enkoder ewent wszczepić obsługę gdzie trzeba do biblioteki mk_enkoder i wywoływać poprzez funkcje enkoder event z głównej pętli,

jednak prościej sie nie da, chyba?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2018, o 18:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Da się :) Wykorzystaj jakiś timer programowy do odliczania np. 100ms i w pętli głównej badaj przycisk - jeśli wyciśnięty to zacznij inkrementować jakąś zmienną uwzględniając wspomniane opóźnienie 100ms i jak doliczysz do 50 (czyli 5s. bo 100ms x50=5000ms) niech się wykona funkcja jaką sobie tam zaplanowałeś. Każde puszczenie przycisku zeruje Twój licznik. Teraz już chyba prościej i pewniej się nie da :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2018, o 18:35 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Badaniem przycisku zajmuje sie enkoder ewent() ; w pętli co 10ms czy co 1ms, już nie pamiętam, tak spróbuję to oprogramowac że funkcje od przycisku udostepnie z biblioteki MK_enkoder, tak będzie mniej w pętli głównej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2018, o 19:18 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Więc tak, zrobione pieknie i dziala dzieki Sylwek.

Wrzuciłem ja do main.c deklaracje przed main do globalnych, ale definicje do main przed pętlą while bo inaczej nie chcialo, worningi.

Ale mam pytanie odnośnie samej struktury
Próbowałem wrzucić do libsa od Mk_encoder tyle że hdzie deklaracja, a definicje gdzie w funkcje tylko i wylaczne?

Deklaracje do *.h a definije do funkcji w *.c ? I dlaczego tylko do funkcji a nie globalnie do MK_Encoder.c

Może mi ktos to madrzejszy objaśnić?

Uprzedzam wywody, zaglądałem do BB rozdział strutur, opisane zagadnienie odnosnie widoczności w programie.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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