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



Teraz jest 7 sty 2025, o 15:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 10 cze 2014, o 20:01 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

Problem polega na tym iż chciałbym za pomocą klawisza włączyć daną funkcję tak aby tak działała w sposób ciągły. Przykładowo pomiar temperatury: naciskając KEY3 chciałbym zobaczyć na lcd, wynik pomiaru, ale nie pojedynczego tylko trwającego aż do odwołania przykładowo innym przyciskiem. Następnie takie rozwiązanie chciałbym zaimplementować do jakiegoś prostego menu. Siedzę już nad tym dość sporo ale najwyraźniej czegoś nie rozumiem.
Bardzo proszę o wskazówki i porady dotyczącego tego problemu jak kodu. Co warto w nim zmienić.
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: 11 cze 2014, o 19:33 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

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


Wprowadziłem typ wyliczeniowy jak zaproponowałeś i działa tak jak chciałem. Miałeś racje źle się do tego zabierałem. Dziękuje za pomoc. Teraz mam pytanie jak powiązać tą zmianę stanów z jakimś prostym menu. Czyli jak ja to widzę przykładowo:
1.poruszam się klawiszem pod opcjach menu(pomiar_temp; godzina; wilgotność)
2.gdy jestem na konkretnej pozycji z menu, drugim klawiszem wybieram daną opcje i przechodzę jak powyżej do pracy ciągłej pomiaru temperatury

Trochę próbowałem jakoś powiązać dwie konstrukcje switch() ze sobą, ale zbytni mi to nie wychodzi. Jak inaczej się do tego zabrać? Powyższy kod różni się od pierwotnego, lecz idea pozostaje ta sama(zastosowałem inne funkcje)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2014, o 00:12 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

Dokładnie o coś takiego mi właśnie chodzi. Wprowadziłem zmiany niby zachowuje się tak jak chcę, ale to jest bardzo dalekie od rozwiązania uniwersalnego.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


przypisałem s_pomiary wartość aby przy pierwszym uruchomieniu pętli głównej nie wchodził mi automatycznie do pomiarTemp

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


Tylko, że nieudolnie wychodzi mi obsługa key_enter. Zrobiłem coś takiego w funkcji do której się odwołuje klawisz_enter
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz dodałem coś takiego dla klawisza_menu aby przy ponownym wciśnięciu go wychodzić z stanu_pomiaru
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


tutaj dodam całość kodu, bo pokrętnie to tłumaczone
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Nie mam pomysłu jak to składnie zrobić :| Jakieś sugestie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2014, o 20:48 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

Staram się rozwiązać problem, jak mam zaimplementować funkcję do tego. Bo zwraca mi taki komunikat:
Cytuj:
../main.c:50: error: 'pomiarTempAction' undeclared here (not in a function)


Więc zrobiłem 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.


Tylko, że teraz w konsoli dostaje warning:
Cytuj:
../main.c:50: warning: initialization makes pointer from integer without a cast


Jeżeli można wytłumaczyć ten fragment bo nie mam pojęcia jak zadeklarować funkcję dla każdego stanu. :|



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2014, o 21:28 
Offline
Moderator
Avatar użytkownika

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

mokrowski napisał(a):
Kolego, ty chyba jednak nie wziąłeś kartki i nie narysowałeś tych stanów


Ja tylko od siebie dodam - że nawet przy w sumie tak stosunkowo niby prostym programie ... sam (tak dla siebie) nie odważyłbym się marnować czasu - bez uprzedniego ostrego popracowania z kartką i ołówkiem a nawet gumką ;) Na prawdę to nie tylko oszczędność czasu ale i nerwów .... własnych oczywiście.

_________________
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: 12 cze 2014, o 21:56 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

Już wiem czym było spowodowane moje zagubienie :) Deklaracje funkcji zostały poczynione tylko, że nie zdefiniowałem funkcji i dlatego był błąd wyrzucany z strony kompilatora
Cytuj:
../main.c:50: error: 'pomiarTempAction' undeclared here (not in a function)


Poniżej daje graf przejść
Obrazek

Miałem zrobiony już wcześniej ten graf, ale niestety nie umiałem go zbytnio przełożyć na program nawet przy tak prostym grafie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2014, o 22:38 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

Bardzo dziękuje za porady. Mam nadzieje, że teraz się zgłoszę dopiero w celu zaprezentowania działającego menu ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lip 2014, o 15:39 
Offline
Nowy

Dołączył(a): 08 paź 2013
Posty: 8
Pomógł: 0

Witam. Po przerwie związanej z sesją, chciałbym powrócić do dalszego rozbudowywania menu. Troszkę przebudowałem swoje menu i wygląda ona następująco:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Tak prezentuje się w całości plik main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Mój problem polega dosłownie identycznie jak poprzednio. Czyli wchodząc do 'SubMenu1_1_1' chciałbym otrzymywać przykładowo pomiary czasu_rzeczywistego. Rozwiązanie z poprzedniego menu nie potrafię przenieść na obecne menu. Czy ktoś mógłby naprowadzić jak sobie z tym poradzić?



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 2 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