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



Teraz jest 21 lis 2024, o 19:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 6 lut 2019, o 10:40 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

W oparciu o licencję personal i zdjęcie z filmiku Pana Mirka, chciałbym dopytać o to jak przypisać klawisze do obsługi menu.
Obrazek

Pytanie wręcz banalne, a jednak mam mały problem.

w pętli głównej po zakomentowaniu enkodera obsługa przycisków wygląda tak:

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


natomiast funkcje do przycisków(przykładowy jeden) :

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


jak chcę wrzucić mk_menu (); pod obsługę przycisków wewnątrz funkcji, czy to w pętli głównej to podkreśla mi na żółto że "implicit declaration of function". Co robię nie tak? Z góry dziękuje za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2019, o 11:53 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

Wrzuciłem teraz coś takiego, normalnie mi się kompiluje, natomiast przyciski nie działają..
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Próbowałem jeszcze tak :

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


i 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.


Jeśli chodzi o funkcje, które były w innych plikach, to odkomentowałem wg. poradnika na YT.
Czy w funkcjach obsługi klawiszy czegoś brakuje? Jak je zaprogramować do obsługi menu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2019, o 14:20 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

Jeszcze jedno pytanie. Jeśli mogę robić własne propertiesy, a są menu_property[MENU_PROPERTY_COUNT]:

typ = byte itd. a chce zrobić własne funkcje. To jak je zaszczepić żeby móc je podpisać własnymi nazwami w np.
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: 6 lut 2019, o 14:44 
Offline
Moderator
Avatar użytkownika

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

Proponuję na początek obejrzeć dokładnie poradniki na temat tego tematu:

https://www.youtube.com/watch?v=AFbE11VbhzY
https://www.youtube.com/watch?v=_h1NsDEtlFw
https://www.youtube.com/watch?v=HiO8b5daZgU
https://www.youtube.com/watch?v=Apq4DZuHy88
https://www.youtube.com/watch?v=AHGxapcx36U
https://www.youtube.com/watch?v=94jMYw2sKps
https://www.youtube.com/watch?v=-w1oCy_hjx4
https://www.youtube.com/watch?v=z8ZH2LPYAuk

Bo kolega zadaje pytania tak jakby w ogóle ich nie obejrzał ... a szczególnie tych dwóch gdzie na żywo pokazuję co i jak:



oraz ten, w którym pokazuję nawet jak to w terminalu zrobić czyli sterowanie przez UART zamiast np klawiszy, enkoderów czy innych



no nie da rady bez tych poradników zacząć pracy z tą biblioteką - szczególnie gdy się jest początkującą osobą w programowaniu.

A po obejrzeniu poradników gwarantuję, że podstawowe MENU ruszy z kopyta a nawet jeśli nie to kolega zada bardziej precyzyjne pytania ok?

_________________
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: 6 lut 2019, o 15:35 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

Obejrzałem po razie te poradniki. Dla mnie to wszystko jest raczej jasne...

Ale pomimo wszystko funkcje, które przedstawiłem wyżej do przycisków - po prostu nie działają, nie zmienia się nic w menu.

Przykładowo jak dam :
if( !(PIND &(1<<PD5) ) mk_menu... to mam puste LCD, wcześniej nie pojawia się nic. Bez "!" pokazuje się tylko "strona tytułowa".
Idąc krok po kroku wg poradnika np. https://www.youtube.com/watch?v=Apq4DZu ... oR&index=3 w min. 25:34
żeby chociaż za pomocą przycisków zadziałać na lcd_cls; nie działa.
Nie mówiąc już o tym, że nie mogę przejść do moich case'ów.

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

albo robię tak ! czy bez - nie działa.
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: 6 lut 2019, o 18:14 
Offline
Moderator
Avatar użytkownika

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

Pokaż że pan w końcu cały swój main.c zamiast tylko fragmenty a babola możesz robić gdzie indziej

_________________
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: 6 lut 2019, o 18:32 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
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.


z przyciskami już sobie poradziłem. Natomiast jest problem z wyświetlaniem - załączam filmiki:

https://www.youtube.com/watch?v=7knd8g3gWkw
https://www.youtube.com/watch?v=wVUN9gsrKpA
https://www.youtube.com/watch?v=6xT3_fhmreo

Od razu mówię, iż przy normalnym wyświetlaniu po funkcjach lcd_str normalnie wszystko wyświetla bez migotania. Tylko w przypadku pozycji menu wyświetlacz wariuje. Sprawdzone na dwóch LCD. Płytka jest sprawna.

W ogóle nie pokazuje mi menu powitalnego, który powinien zostać wygaszony poprzez wciśnięcie przycisku (tak jak u Pana poprzez wciśnięcie enkodera). Pojawia sie odrazu migoczące menu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2019, o 22:50 
Offline
Moderator
Avatar użytkownika

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

Gammadion napisał(a):
//      register_menu_node_callback( display_menu_node );
//      register_menu_branch_callback( display_menu_branch );


A to u mnie w poradnikach rozumiem jest zakomentowane tak ?

------------------------ [ Dodano po: 3 minutach ]

Gammadion napisał(a):
z przyciskami już sobie poradziłem.

No i dlatego mówiłem, żebyś pokazał cały kod - bo jak widać z kodu to to zdanie jest nieprawdziwe, w ogóle nie poradziłeś sobie z przyciskami niestety i nie obraź się, ale powinienem odesłać do podstaw do Bluebooka ... bo na prawdę bez podstaw ciężko się zabierać za takie bardziej zaawansowane rzeczy ...

ale podpowiem, podciągania przycisków to ja w ogóle nie widzę w tym kodzie dla TAK mega prostej obsługi tych przycisków - więc nie dziwota że masz SZAŁ na LCD ;) to wręcz normalne - i doświadczasz tego na własnej skórze czym jest stan HiZ (stan wysokiej impedancji) ... krótko mówiąc przyciski same ci się wciskają

_________________
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: 7 lut 2019, o 08:49 
Offline
Moderator
Avatar użytkownika

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

Gammadion napisał(a):
Natomiast jest problem z wyświetlaniem - załączam filmiki:

https://www.youtube.com/watch?v=7knd8g3gWkw

jeszcze jedno? na jakim procku to odpalasz - bo taki efekt jak na tym pierwszym filmiku może być gdy się cały czas procek resetuje bo np źle skonfigurowałeś jakiś timer tzn jego przerwanie itp

_________________
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: 7 lut 2019, o 13:48 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

Z tej całej rutyny nie wstawiłem podciągnięcia klawiszy, gdzie wcześniej to wszystko było w key_init. Po prostu dałem w pętli while te klawisze a key_init zakomentowałem. Długo siedzę na tym wszystkim i czuje się już zmęczony :) Dziękuję za pomoc !
Timerów ani przerwań żadnych nie konfigurowałem, procek atmega32A, taktowanie 11Mhz. Teraz wystąpił inny problem - źle przekierowuje mnie na poszczególne pozycje menu. Dodatkowo wcina, przesuwa mi wyrazy po przejściach. Wszystko generuje z programu mkmenugen (nie wprowadzałem zmian ręcznie) pod LCD 4x20 (wiem, że w programie jest 2x16 i 4x16) ale w bibliotekach też ustawiałem rozdzielczość dla wyświetlacza i problem jest ten sam...
Obrazek


https://youtu.be/OYtpwu9D7nQ
https://youtu.be/tOjtA678ZRI

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


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć 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: 7 lut 2019, o 18:43 
Offline
Moderator
Avatar użytkownika

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

Ok widzę, że muszę przygotować przykładowe programy - dobra przygotuję - ale trzeba troszkę poczekać ok?

_________________
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: 7 lut 2019, o 19:28 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

Nie ma problemu :) dziękuję :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2019, o 13:14 
Offline
Użytkownik

Dołączył(a): 17 gru 2018
Posty: 29
Pomógł: 0

Trochę wychodząc naprzód - chciałbym podpiąć swoje funkcje z typem void.

I jak mam w menu_display.h :

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zamiast tego chciałbym mieć swoje funkcje typu void.

gdzie później bym mógł umożliwić jej aktywowanie w menu_property i przypisać odpowiednio do case'ów po switch (fun_id ) w pliku mk_menu_exe.c

dajmy na to przykład : void praca_start_pom_1 (void); by mógł się podpiąć pod TPROPERTY; Drążę temat i nie mogę tego załapać, wyskakują błędy.

I taką funkcję (opisana przykładowo w następujący sposób) wtedy wrzucam do mk_menu_display.c, żeby potem ją podpiąć pod 1 case w pliku mk_menu_exe?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak z tymi voidami wtedy zadziałać, żeby to pożenić z TPROPERTY? Szukam w książce(filmiki obejrzałem już któryś raz rzędu) ale nie mogę znaleźć podpowiedzi.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO