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



Teraz jest 24 lut 2025, o 17:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 28 maja 2017, o 17:41 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

Witam, dzisiaj trapi mnie problem jak zrobić obsługę przycisku ale w taki spodub ze wciskamy i trzymamy jak długo nam sie podoba ale procedura obsługi klawisza zadziała tylko raz.
Opis działania
- po wciśnięciu przycisku dioda Led zapala się
- drugie wciśniecie gaszenie diody
- kolejne wciśniecie zapalenie diody Led i tak w kółko
teraz jak trzymam Przycisk to dioda Led mruga a jak to obejsc.


oto kod
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: 28 maja 2017, o 17:56 
Offline
Użytkownik
Avatar użytkownika

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

Witam,
może coś 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.



Ostatnio edytowano 28 maja 2017, o 17:58 przez Daro69, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2017, o 17:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html
przeczytaj i wiesz wszystko :D


Autor postu otrzymał pochwałę

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2017, o 18:09 
Offline
Użytkownik
Avatar użytkownika

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

hi hi .. @mczarny. dobrze piszesz. :)
kurcze - kolega dopytuje o takie tematy i używa jeszcze delayów. :?
może jeszcze nie załapać "key_lock" i całej zasady działania "SuperDebounce". ;)
może jeszcze kilka dni za wcześnie. Ale link jak najbardziej. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2017, o 18:36 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

W sumie racja czarna magia, ale działa :)
Wiem ze delaye sa bee ale nie umiem , nie wiem jak ich się pozbyć, ale jak na razie pisze programy których czas działania nie jest ważny. Jak dla Mnie ważne ze działa i robi tak jak Ja che (czasem z pomocą forum działa tak jak Ja che ), wiem ze składnia mojego programu tez pewnie nie jest najlepsza jak bym wkleił kod to pewnie wyśmiali byście Mnie .
dzięki za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2017, o 09:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lip 2013
Posty: 208
Lokalizacja: Kielce
Pomógł: 15

Manianass napisał(a):
...wiem ze składnia mojego programu tez pewnie nie jest najlepsza jak bym wkleił kod to pewnie wyśmiali byście Mnie .
dzięki za pomoc.


To nie jest forum na "e".
Co najwyżej dostały kolega wskazówki odnośnie kilku zasad pisania programu, tak żeby od początku wyrobić sobie nawyk poprawnego pisania kodu.

Na tym forum nikt nie wyśmiewa początkujących.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2017, o 09:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Manianass napisał(a):
W sumie racja czarna magia, ale działa :)


to może napisz czego nie rozumiesz spróbujemy wyjaśnić ;)

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2017, o 14:16 
Offline
Użytkownik
Avatar użytkownika

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

Może tak na prostą logikę, aby łatwiej było zrozumieć podobne zależności czasowe... Bierzemy dodatkową zmienna i inkrementujemy ją przez cały czas wciśnięcia klawisza. Oczywiście badanie klawisza dobrze jest okrasić jakimś opóźnieniem (interwałem) milisekundowym (10-20ms) zrobionym ostatecznie na delay choć zalecam timer programowy z wykorzystaniem przerwań. Teraz jeśli znamy opóźnienie i stan inkrementowanej zmiennej bez problemu trafimy w moment, w którym ma być wykonana funkcja w zależności od czasu przyciskania. Jeśli klawisz puszczony to zmienna zerowana. Tą prostą zasadę można stosować w przeróżnych konfiguracjach i na tej podstawie stworzyć badanie nawet kilkunastu stanów jednego klawisza - coś podobnego wykorzystałem kiedyś do jednoprzyciskowego zamka szyfrowego napisanego jeszcze w bascomie. Program gdzieś na elektrodzie się poniewiera.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2017, o 17:25 
Offline
Użytkownik

Dołączył(a): 22 cze 2015
Posty: 50
Lokalizacja: Lubin
Pomógł: 0

Ok, a Wiec zamieszczę kawałek kodu i się przekonam czy mój tok Pisania programu jest w miarę dobry czy raczej do niczego , znaczy do niczego to raczej nie bo program działa tak jak zakładam :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Zasada działania Jak nacisnę klawisz D1 to silnik "kreci" się w prawo, drugie naciśniecie silnik się zatrzymuje
M2_Off to wyłączanie silnika, dlatego jest następna zmienna R1M2 gdy ma stan ==1 to znaczy ze silnik "kreci" się w Lewo i najpierw muszę go zatrzymać (M2_Off) poczekać aż wyhamuje (_delay_ms 400) i załączyć prawe obroty M1_On



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

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