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 5 maja 2025, o 21:05


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 20 lut 2018, o 21:26 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    cześć.
    stworzyłem sobie typ wyliczeniowy enum i chciałbym teraz wyświetlać jego zawartość na LCD. Z tym typem wyliczeniowym mam pierwszy raz do czynienia. Tak to wygląda u mnie w programie:

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


    W jaki sposób mogę sobie wyświetlać kolejno zawartość enum-a?
    Domyślam się,że mogę to zrobić za pomocą funkcji z obsługi LCD z bb, np tą tego typu funkcją:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Oczywiście rozumiem ,że ta funkcja wyświetla tylko liczbę dziesiętną, a enum taką nie jest.
    Jednak nie potrafię do tego dojść. :(
    Proszę o podpowiedź.

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lut 2018, o 22:09 
    Offline
    Moderator
    Avatar użytkownika

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

    wojciechgorzolka napisał(a):
    a enum taką nie jest.

    hmm a jaką jest ? ;) coś kolega jednak nie doczytał dobrze ;) ... jak mogą być inne liczby w języku C hmm ?

    masz podane typy i ich nie zmienisz ... ba pokazywałem nawet przykłady, jak się inicjalizuje wartości dla elementów typu wyliczeniowego

    domyślnie dla typu wyliczeniowego przyjmowany jest jak zwykle typ liczby 16-bitowej (int/uint16_t)

    _________________
    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: 20 lut 2018, o 22:22 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    ok, Ale jeśli chcę sobie wyświetlić np cyfrę "0", to wpisuję taki kod:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Ale co zrobić,żeby na LCD wyświetlać pierwszą wartość mojego enum-a?
    Z tym mam kłopocik

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lut 2018, o 23:06 
    Offline
    Moderator
    Avatar użytkownika

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

    lcd_int( sek );

    _________________
    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: 20 lut 2018, o 23:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Polecam poczytać:
    http://forum.atnel.pl/topic19493.html ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lut 2018, o 18:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    hejka,
    wojciechgorzolka napisał(a):
    stworzyłem sobie typ wyliczeniowy enum i chciałbym teraz wyświetlać jego zawartość na LCD.

    Wojtek,
    enum to NIE jest takie coś jak tablica.
    raczej - enum przypisuje na stałe wartości do - hmm... nazw które tam umieścisz.
    wojciechgorzolka napisał(a):
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

    od tej pory,
    w twoim kodzie i w moich defajnach,
    sek bedzie miało wartość 0, a min wartość 1. ;)
    Twój sposób jest wygodniejszy bo, samo wpisywanie w klamrach 'nazw' powoduje automatycznie przypisanie kolejnej wartości do kolejnego 'napisu' zaczynając od ZERA.(chyba że to świadomoie zmienisz przypisując znakiem rółwności wartości)
    np:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    ale nie służy to do inkrementowania np. czasu. :)
    pozdro.



    Ostatnio edytowano 21 lut 2018, o 21:53 przez Daro69, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lut 2018, o 20:18 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    Dziękuję za wyjaśnienia :) Muszę jeszcze ten temat doczytać w BB .

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


    i widzę,że działa. Wpisując "sek" z enum-a, to wyświetla mi cyfrę 0, ponieważ taka jest przypisana (to rozumiem). Jeśli wpiszę w funkcji do wyświetlania "min", to mi wyświetla cyfrę 1. I to jest ok, tylko mnie chodzi o coś odwrotnego. Czyli będę wpisywał w funkcji cyfrę np 0 , a na wyświetlaczu ma mi się wyświetlić pierwsza nazwa (pozycja) z enum-u. Ma się wyświetlicz "sek" , który ma właśnie wartość =0.

    _________________
    Nikt nie mówił,że będzie łatwo...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lut 2018, o 21:06 
    Offline
    Moderator
    Avatar użytkownika

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

    wojciechgorzolka napisał(a):
    tylko mnie chodzi o coś odwrotnego. Czyli będę wpisywał w funkcji cyfrę np 0 , a na wyświetlaczu ma mi się wyświetlić pierwsza nazwa (pozycja) z enum-u. Ma się wyświetlicz "sek" , który ma właśnie wartość =0.

    No to nie rozumiesz co to jest enum

    enum to liczby a dla wygody możemy im nadawać nazwy ...


    Autor postu otrzymał pochwałę

    _________________
    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: 21 lut 2018, o 21:29 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    ok. czyli rozumiem,że moja metoda nie wypali. :)

    _________________
    Nikt nie mówił,że będzie łatwo...



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

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    poprawiłem powyższy mój post, bo nie wiem po co wkitrałem znak równości do defajna i średniki. sorka. :roll:

    wojciechgorzolka napisał(a):
    tylko mnie chodzi o coś odwrotnego. Czyli będę wpisywał w funkcji cyfrę np 0 , a na wyświetlaczu ma mi się wyświetlić pierwsza nazwa (pozycja) z enum-u. Ma się wyświetlicz "sek"


    to może Tobie chodzi o uzyskanie czegoś takiego.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lut 2018, o 22:39 
    Offline
    Moderator
    Avatar użytkownika

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

    wojciechgorzolka napisał(a):
    ok. czyli rozumiem,że moja metoda nie wypali. :)

    są sztuczki żeby to wyświetlić ale uwierz mi to bez sensu - enum nie jest do tego... używaj normalnych stringów

    _________________
    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: 22 lut 2018, o 07:24 
    Offline
    Użytkownik

    Dołączył(a): 28 maja 2016
    Posty: 469
    Lokalizacja: Katowice
    Pomógł: 1

    Darku o to mi właśnie chodziło . :) Byłem przekonany,że enum jest od tego. Ale dziękuję za wyjaśnienia.

    _________________
    Nikt nie mówił,że będzie łatwo...



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

    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