logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[BASCOM] [BASCOM][ATM32] - Nieaktywne przyciski w menu wielopoziomowym na ZL3AVR

odczynnik 18 Wrz 2013 13:32 2454 8
  • #1 12749617
    odczynnik
    Poziom 12  
    Witam

    Mam problem z menu wielopoziomowym.

    Przeczytałem już chyba wszystkie tematy odnoście menu które znalazłem na elektrodzie i tak naprawdę żaden problem odnośnie menu nie był do końca rozwiązany:(

    Problem jest taki że żadne z przycisków mi nie działa i nie przechodzi program między menu główne, ani nie wchodzi do podmenu. Przyciski są podłączone do portu d. Mam zestaw ZL3AVR.

    Poniżej program może ktoś dojdzie co jest nie tak.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Edit 14:50:

    Teraz zauważyłem że coś jak bym nie miał sygnałów z przycisków. Mam przewody podpięte miedzy w1-w4 do pd0-pd3 i zwore na 3 i musi działać a tu nic.

    Napisałem nowy program i problem ten sam. Czemu nie działają porty? POdłączone jest wszystko dobrze...

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #2 12750104
    gorsomir
    Poziom 13  
    Witam proponuje sprawdzić czy właśnie przyciski jako takie działają,
    najlepiej użyć też składni
    Kod: text
    Zaloguj się, aby zobaczyć kod


    wtedy odwołujesz się bezpośrednio do fizycznego stanu końcówki a nie tego co jest w rejestrze[/code]
  • Pomocny post
    #3 12750105
    yokoon
    Poziom 29  
    Witam.
    Spróbuj tak napisać etykiety podprogramów.

    Zamiast Menu_1 :

    Napisz Sub Menu_1
  • #4 12750129
    odczynnik
    Poziom 12  
    Zmieniłem tak i nadal nic.

    Co ciekawe jak na sztywno przewodem łączę ok czyli portd.2 z gnd to powinno wywołać procedurę z Sub Menu_1 a tu nie dzieje się nic.

    Zmieniłem procek i to samo
  • Pomocny post
    #5 12750146
    gorsomir
    Poziom 13  
    Napisz poprostu na początek program który bedzie tylko sprawdzał stan tych pinów i będzie wiadomo czy problem jest z wyswołaniem procedury czy z wykrywaniem kliknięcia przycisku
    ewentualnie spróbuj odwołać się bezpośrednio do końcówek zamiast przez aliasy
  • #6 12750169
    odczynnik
    Poziom 12  
    Już mam i działa, zmieniłem pin na port!
    Nie widziałem twojego postu garsomir wybacz jakoś mi umknął.
    Masz racje zamiast port należy wpisać przy aliasach pin i śmiga wszystko.
    Pisałem program do sprawdzania i też nie działało bo nie było pin:)
    Więc dzisiejsza lekcja taka że przy opcji Alias musi być wpisane Pin a nie Port
    Zaraz udostępnię gotowy program z menu może komuś pomoże a jako takiego który do końca dobrze działa to nie ma na elektrodzie.

    Pozdrawiam i dzięki za pomoc

    Dodano po 57 [sekundy]:

    Więc po poprawię błędu szablon menu wielopoziomowego jest gotowy, bardzo prosty do rozbudowy, edycji, zmian wyświetlanych tekstów na wyświetlaczu.
    Jest przykład tworzenia kategorii menu, przechodzenia do menu, tworzenia podmenu i wchodzenia do programu jaki ma być pod etykietą menu.
    Można łatwo rozbudować menu o kolejne kategorie menu, pod lub pod pod menu itd.
    Jeśli za szybko będą się przełączać menu tj za wolno będziecie wciskać przyciski można wydłużyć funkcje waitms np do 200.
    Kto trochę jak programować ot na pewno da sobie radę:)

    Poniżej kod i załączony plik z szablonem/przykładem

    Kod: text
    Zaloguj się, aby zobaczyć kod
    Załączniki:
  • #7 12756832
    SylwekK
    Poziom 32  
    Działa to ok, nie mogę jednak przejść obojętnie obok tak strasznie dziwnego menu jak Twoje... Niepotrzebnie skomplikowane , niestety chaotyczne i zapewne migające na wyświetlaczu co 150ms...
    Jeśli mógłbym coś doradzić to dla max 10-pozycyjnego menu z max 10-oma poziomami menu wystarczy użyć jednego(!) select...case do nawigacji i drugiego select...case do edycji danych (skok z głównego).
    Wystarczy użyć raz badania przycisków i wykorzystać jeden bit znacznik na zablokowanie odświeżania wyświetlania (łącznie z czyszczeniem) do momentu aż znowu będzie "klik". Każde podmenu to liczba podstawowa 0 do 9 x 10 czyli np. podmenu dla nr 5 = 50 do 59.
    Zrobiłem już parę sterowników z moim rozwiązaniem i wybacz ale Twoje rozwiązanie uczy TYLKO złych nawyków. Przeanalizuj proszę to co powiedziałem i pokombinuj mimo, że już Ci to działa.
    Oprócz tego moje menu nie blokuje programu głównego - tam się cały czas wykonuje podstawowe zadanie sterownika jeśli takie posiada.
    Zapoznaj się też przy okazji z przerwaniami i licznikami programowymi - wywalisz wtedy wait i w ogóle zapomnisz o jego istnieniu.
    Pozdrawiam.
  • #8 12758877
    rs07
    Poziom 20  
    odczynnik napisał:

    " przy opcji Alias musi być wpisane Pin a nie Port"

    Wydaje mi się że nie oto chodzi. Pin piszemy gdy odczytujemy stan końcówki a Port gdy chcemy ustawić stan końcówki.
  • #9 12758940
    SylwekK
    Poziom 32  
    rs07 napisał:
    Wydaje mi się że nie oto chodzi. Pin piszemy gdy odczytujemy stan końcówki a Port gdy chcemy ustawić stan końcówki.

    Tak, ale tu ALIAS jest ok - musi być na PIN, bo to przecież przyciski.
REKLAMA