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? 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 18 lip 2025, o 18:54


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
    Autor Wiadomość
    PostNapisane: 27 lut 2021, o 20:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 586
    Pomógł: 0

    Witam.
    Pytałem wcześniej o pewne podpowiedzi dotyczące tworzone przeze mnie prostego menu w celu uczenia się języka C.
    Koledzy mi dużo podpowiedzieli i coś tam się udało, ale chciałbym się dowiedzieć jak mogłem ten program napisać w sposób bardziej profesjonalny bo ten na pewno jest banalny :(

    Największym problemem jest zła obsługa klawisza , klawisz nie zawsze działa poprawnie tzn. kierunek menu się zmienia ale naciśnięcie krótkie powoduje złą reakcje programu.
    Jak mogę spróbować to lepiej obsłużyć ?

    Pokaże program:

    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.


    Próbowałem wysłać wideo ale coś nie poszło.
    Dodatkowo w czasie przełączania wyświetlanie nie jest stabilne .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 lut 2021, o 22:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    Cieszę się, że stringi na LCD już działają ;)
    Co do menu, strasznie dużo tu ifów. Nie lepiej byłoby opakować to w jakąś strukturę? Mogłaby ona przechowywać np: pozycję menu, poziom menu, wskaźnik do funkcji wywoływanej w danej opcji itd.? I wskaźnik na taką strukturę łatwo byłoby też przekazać. To tak na gorąco wymyślam.

    Polecam tu przy okazji jeden z najlepszych moim zdaniem poradników Mirka o strukturach i wskaźnikach przy konstrukcji gry w Snake'a: https://www.youtube.com/watch?v=MOgXcDJ29B0

    A na przyszłość, warto moim zdaniem zainteresować się tematem list jednokierunkowych (linked lists). Technika może okazać się przydatna przy założeniu, że menu w przyszłości ma być rozbudowane i łatwo modyfikowalne.

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 27 lut 2021, o 23:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 586
    Pomógł: 0

    Tak na pewno ale w tym momencie większym moim problemem jest to że przycisk działa wolno i nie zdąży zawsze w określone zadanie w menu.
    Czyli naciskam zmienia się kierunek_menu a miga inna sekwencja , dodatkowo dżinie miga menu jak naciskam przycisk.

    Oczywiście zbudowanie struktury to fajna sprawa i dziękuję za wskazówkę i zajmę się analizą.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2021, o 11:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 324
    Lokalizacja: Rybnik
    Pomógł: 23

    Co do przycisków to wejdź sobie na bloga Mirka tu:
    http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html
    Bardzo fajnie i szczegółowo opisuje obsługę klawisza i eliminację drgań styków.
    U ciebie funkcja obsługi klawisza jest powiedziałbym delikatnie nie za bardzo, choć podobna do Mirkowej ale nie do końca.
    No i ten Delay w tej funkcji.

    _________________
    http://www.avrboss.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2021, o 09:02 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 586
    Pomógł: 0

    Dzięki za podpowiedz . Masz racje ten _delay to troche słabe i wycofałem go. Spowodowało to trochę poprawę tzn szybkość działania przycisku , ale zmienna kier zmienia się za szybko tzn, przeskakuje o 2.
    Chętnie coś pewnie zmiennie najpierw w obsłudze styku - masz może jakąś sprawdzoną procedurę?
    Ale największy problem jest w tym że zmienna kier_menu nie zawsze z gazda się z przypisanym parametrem który miga.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 mar 2021, o 19:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 324
    Lokalizacja: Rybnik
    Pomógł: 23

    A do czego służy ci zmienna sw1 w linii "176 sw1^=1;", bo nie bardzo to widzę, chyba , że pominąłem coś w kodzie.
    Widzę tylko jej deklarację w linii 22 i sprawdzanie ifem w linii 167, po czym ma się zmienić na stan przeciwny w linii 176.
    No ale ta zmienna nigdzie w programie się nie zmienia i zawsze wynosi 0 tak jak ją zadeklarowałeś na początku programu. Chyba, że coś przeoczyłem.
    Wstaw ten program po poprawkach, (już bez tego delaya) i pokaż gdzie zmienna sw1 jest jakoś przeliczana czy coś.
    Może jestem już trochę ślepy i nie dowidzę albo coś pominąłem. Wskaż mi to.

    _________________
    http://www.avrboss.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 mar 2021, o 09:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 586
    Pomógł: 0

    Bardzo dziękuje za zainteresowanie tematem, już odpowiadam :
    Założenie jest takie aby pozycja menu na którą chcę zatwierdzić po prostu migała, skorzystałem z przykładu z poradników gdzie Mirek pokazywał jak mogę zamigać np. w przerwaniu.
    Ta zmienna sw1 służy tylko do tego celu.
    Oczywiście dyleya wywaliłem i trochę poprawiło działanie programu.
    Ale stoję trochę w miejscu bo jak zmieniam pozycje menu wciskając KEY1_PIN to pozycje menu przeskakują i migają ale raz- że dzieje się to bardzo brzydko bo do ustalenia miga dziwnie wszystko.
    Druga sprawa jak już miga dane menu to chciałem drugim przyciskiem KEY2_PIN to zatwierdzić i wejść do obsługi kolejnych programów.
    Problem polega na tym że nie mam pomysłu jak to zrobić.
    Próbowałem pokazać wideo ale coś mi nie wyszło.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 mar 2021, o 22:49 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 586
    Pomógł: 0

    Trochę poprawiłem poprzez wprowadzenie struktury , ale te If y denerwują mnie , a ja nie mam pomysłu żeby było bardziej fachowo.
    Myślałem żeby warunki zamknąć w jakiejś jednej funkcji podpowiedzcie jak mogę to zrobić?
    Proszę o jakąś nawet małą wskazówkę

    Pokaże zmodyfikowany program:

    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: 3 mar 2021, o 20:44 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2017
    Posty: 586
    Pomógł: 0

    Próbuję poprawić obsługę styków udało mi się .
    Wynikiem tego jak wciskam klawisz KEY1_PIN zmienna stan1=1 , jak puszczam stan1=0 wydawało by się że jest ok ale nie do końca :( napotkałem na problem:

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


    I stało się tak że zmienna kier nie zmienia się co jeden tylko przelatuje dosyć szybko

    Jakie warunki ustawić żeby zmienna przyjęła 1 na jeden obieg pętli (może jakiś zatrzask ) rozjaśnijcie mi proszę

    Ustawienia funkcji wciśnięcia przycisku są takie:

    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: 4 mar 2021, o 14:36 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 mar 2015
    Posty: 324
    Lokalizacja: Rybnik
    Pomógł: 23

    Spróbuj tak:

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

    _________________
    http://www.avrboss.pl



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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