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



Teraz jest 19 kwi 2024, o 21:59


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: 27224
Lokalizacja: Szczecin
Pomógł: 1041

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: 27224
Lokalizacja: Szczecin
Pomógł: 1041

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: 27224
Lokalizacja: Szczecin
Pomógł: 1041

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: 27224
Lokalizacja: Szczecin
Pomógł: 1041

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 2 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