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

[AVR] [C] Czy istnieje struktura enum w enum?

bolek 02 Sie 2011 18:08 1975 7
  • #1 9785420
    bolek
    Poziom 35  
    Próbuje wykombinować coś enum i za bardzo mi nie idzie. Tzn, zrobiłem menu i ekran główny- to działa i załączam kawałek kodu. Docelowo potrzebuje ekran główny podzielić jeszcze na kilka różnych, oraz dodać kilka ekranów alarmowych które przerwą dowolne z wyżej wymienionych. To już mi za bardzo nie wychodziło i nie widzę sensu wklejać tych prób.
    Podpowiedzcie jak to powinno mniej więcej wyglądać. Dlaczego wskaźnika nr_menu (menu) nie mogę zmieniać poza jego pętlą?

    [code]
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #2 9785543
    gaskoin
    Poziom 38  
    Bardzo chaotycznie opisałeś swój problem. Czy mógłbyś udzielić jakichś bardziej szczegółowych opisów niż "Próbuje coś wykombinować ale mi nie idzie, tzn zrobiłem menu ale nie działa" i co znaczy "w jego pętli" ?

    Jeżeli chodzi o samo menu (o ile będzie drzewiaste) to najwygodniej jest je zrealizować za pomocą struktury "menu" którą będzie miała wskaźniki na inne "menu" rozwiązanie było podawane chyba kiedyś na elektrodzie, wystarczy poszukać :)
  • #3 9786629
    bolek
    Poziom 35  
    Przeglądałem już kilka tematów, bo w zasadzie wszystko co z menu związane to zawsze wiąże się z enum, tyle że początki są trudne. Teraz wspomnianych "wypocin" nawet już nie mam, ale doszedłem do takiego rozwiązanie że jedno enum było tak jak wyżej- ono realizowało poruszanie się pomiedzy ekranem głównym, a menu. Potem do ekranu głównego (EKR_GLOWNY_AL()) wkleiłem analogiczne enum które rozdzielało go na kilka różnych opcji. Niestety w tym drugim enum kompilator sypał błędami gdy chciałem wpłynąć na pierwszy enum (i na odwrót). Mam nadzieje że tak jest jaśniej. Poczytam jeszcze raz te tematy i dam znać, może pójdzie lepiej.
  • #5 9787081
    kaczart
    Poziom 14  
    nie ma czegoś takiego jak najlepszy sposób,

    kolega chce z dowolnego menu skakać w zupełnie inne menu (ekrany alarmowe), więc tutaj enum moim zdaniem będzie lepszy.

    Wytłumacz jeszcze raz w czym masz problem to postaramy się pomóc..

    i czy zamiast

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    nie chciałeś napisać

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    pozatym w jednym enum, możesz sobie zdefiniować kilka rodzajów menu, np. tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    wszystko masz w jednym miejscu programu i wiesz, że np. od 1-49 to ekrany główne a powyżej 100 to ekrany alarmów.. możesz sobie skakać między menu dowolnie z każdemu miejsca programu
  • #6 9787112
    gaskoin
    Poziom 38  
    kaczart napisał:
    nie ma czegoś takiego jak najlepszy sposób,

    kolega chce z dowolnego menu skakać w zupełnie inne menu (ekrany alarmowe), więc tutaj enum moim zdaniem będzie lepszy.


    Przecież zamiast tego cudowania wystarczyło by zmienić wskaźnik na ekran alarmowy...
  • #7 9787131
    kaczart
    Poziom 14  
    każdy robi wg własnych preferencji, dla mnie niewygodne by było wyliczać od początku listy w którym miejscu jest dany ekran alarmowy, a później w kodzie bym jeszcze wcisnął po środku jakiś ekran i znów by się pozmieniało

    tak wystarczy ze sobie napisze "ekran=alarm_temp" i nie ważne czy mi się zmieni ilość elementów przed tym menu czy nie.. w każdej chwili mogę sobie skakać skąd chce dokąd chce, a jak chce przejśc poprostu do kolejnego to robie ekran++ ...

    na strukturach i wskaźnikach będzie pewnie bardziej "ze sztuką" ale dla mnie to było sporo zabawy żeby napisać procedury obsługi takiego menu dostosowane do swoich potrzeb - enum był wygodniejszy
  • #8 9789623
    bolek
    Poziom 35  
    Dzięki za zainteresowanie

    A czym się te kody różnią?


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Ogólnie z tymi klawiszami jest tak że gdy mam ekran główny (menu=0) to mogę wejść do menu. Jeśli jest gdzieś w menu (wartość menu=1...7) to klawiszami góra/dół się po nim poruszam lub wychodzę do ekr. głównego.
    Dziś nie było czasu żeby dodać te alarmy, i dobrze bo nie wiedziałem że ekranom można zdefiniować jakieś zakresy i chyba mam pomysł jak to zbudować. Patrząc na inne kody też myślę że nie ma po co mieszać w to wskaźników (tym bardziej, że jeszcze ich do końca nie czuje).
REKLAMA