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



Teraz jest 18 gru 2025, o 18:31


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 24 wrz 2015, o 19:54 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Witam :)

Trochę się zakręciłem... Postanowiłem zastosować SuperDebounce w swoim nowym hobbystycznym projekcie, a przy okazji chciałem zrobić wygasanie LCD po jakiejś tam bezczynności po ostatnim wciśnięciu switcha.. Więc funkcja wygląda:

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


W sumie jak wywołałem ją w while'u to fajnie wygasa.. z tym że jest to while...
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ale przy wywołaniu przyciskiem niestety wyświetlacz nie chce przygasać... zmienna pwm1 cały czas równa jest 0 (podświetlenie LCD sterowane katodą więc wyświetlacz zapalony)

Sposób obsługi przycisku czysto poglądowy (nie związany z s..Debounce)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Spójrzcie proszę na ww. funkcję. Czy po wciśnięciu przycisku nie powinna się wykonać? (tzn. najpierw pętla a później > return - opuszczenie funkcji)?

Bardzo proszę o pomoc bo chwilowo stoję przez to z całym programem ...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 20:14 
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

Jeśli dla i = 0 Timer3 jest równy zero to pwm zwiększy się o 1. Dla i = 1 i kolejnych w pętli for nie ma nic do roboty i wykona się ekstremalnie szybko, bo Timer3 = 2000 i nie zdąży się zmniejszyć. Takie coś zaproponuję:
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: 24 wrz 2015, o 20:28 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Yeah :) teraz hula ... super ogromne dzięki !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2015, o 21:29 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

a mam jeszcze pytanie przy okazji, bo znowu coś źle myślę...

funkcję ściemniającą wyświetlacz wywołuje sobie jako callback w superdebounce:
z tym że w praktyce do póki wyświetlacz się nie wygasi to mam przez chwilę zablokowaną możliwość wciśnięcia innego przycisku... czyli w pętli, która ściemnia wyświetlacz powinienem dać warunek, że jeżeli któryś ze switchy będzie wciśnięty to funkcja zostanie opuszczona czyli:

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


może ten if wygląda dosyć prymitywnie.. no i w każdym razie to moje kombinowanie nie działa... prosiłbym o jakieś naprowadzenie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2015, o 15:38 
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

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

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

Może zadziała, ale nie rób w ten sposób, ani w sposób, który podałem powyżej ponieważ to wstrzymuje program. W pętli głównej umieść nowy timer programowy i tam zwiększaj pwm1. Jeśli jakikolwiek przycisk zostanie naciśnięty to w funkcjach, które wywołuje suberdebounce ustawiaj pwm1 na 0.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 wrz 2015, o 22:12 
Offline
Użytkownik

Dołączył(a): 27 maja 2014
Posty: 75
Pomógł: 0

Sorry, że dopiero teraz... ale byłem bez neta. Wielkie dzięki Krauser za wskazówki... ale nie wiem czy dobrze kombinuję...

jeżeli dam takie coś w while'u:

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

To blokuje mi inne zdarzenia w pętli while, np wywołanie superdebounce itp. itd. A w tym przypadku to ściemnianie nie powinno odbywać się jakby "w tle". Z góry dzięki

funkcja dim_display
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: 1 paź 2015, o 22:38 
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

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

Nie możesz używać pętli while w żadnej funkcji. Sprawdzanie musi się opierać o if:
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

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