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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 3 maja 2025, o 05:01


    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: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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: 27378
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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 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