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



Teraz jest 22 mar 2026, o 09:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 20 lis 2014, o 23:12 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 1

Hej ;)
Zastanawiam się czy proste menu które napisałem nadaje się do użytku. Wydaje mi się, że udało mi się napisać to tak, żeby nie pisać niepotrzebnie na LCD i żeby nie zacinać się na jakiś czas.

Mam też pytanie co do modyfikacji: chciałbym, aby po wybraniu opcji 1 zegar pojawił się na np 5sekund(i przez te 5 sekund cały czas się odświeżał).
Czy aby poprawnie to zrobić powinienem:
1) Po wykryciu kliknięcia TYLKO USTAWIĆ flagę "wyswietlaj_zegar"
2) Wykorzystać timer do zgaszenia flagi po 5 sekundach
3) Kiedy flaga jest ustawiona to w każdym obiegu pętli głównej odświeżać zegar? (ewentualnie wykorzystać timer aby odświeżać tylko co sekundę?)

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: 21 lis 2014, o 02:17 
Offline
Użytkownik

Dołączył(a): 02 cze 2014
Posty: 123
Pomógł: 0

Myślę ze dało by się to zrobić z wykorzystaniem jednej zmiennej (czas) która w przerwaniu jest ciągle inkrementowana w dół np do zera. i teraz tak jak wciskasz ten swój przycisk to przypisujesz jej wartość czas=500 (musisz tak dobrać aby uzyskać te chciane 5sekund). Robisz w pętli głównej warunek ze gdy zmienna czas >0 to odświeżasz LCD i aktualizujesz zegar. Jednak nie rób tego z pełną szybkością wykonywania się petli tylko poczytaj w necie o działaniu MODULO. Jak już poczytasz to będziesz wiedział ze możesz zrobić tak ze gdy dasz tą swoja zmienna czas Modulo to w prosty sposób otrzymasz warunek który jest prawdziwy co 1 sekunde. Reasumując w czasie inkrementacji zmiennej czas z 500 do 0 będziesz miał wyświetlanie zegara przez 5 sekund i dodatkowo będzie się odświeżał co 1 sekundę.

_________________
http://mojekonstrukcje.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lis 2014, o 18:51 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 1

Hm, przerzucę to LCD_ON() do if'a linijkę niżej i już będzie się wykonywał tylko raz. Czy jednak coś mi umyka?


ahhh jednak nie. Mój błąd :) Pomyślę nad tym.



Ostatnio edytowano 21 lis 2014, o 19:00 przez skoomi, łącznie edytowano 1 raz

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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