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



Teraz jest 21 lis 2024, o 21:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 17 mar 2016, o 22:19 
Offline
Nowy

Dołączył(a): 17 mar 2016
Posty: 2
Pomógł: 0

Dzień dobry.

Doszedłem to tego przykładu i czegoś tutaj nie rozumiem.
Nie będę przepisywał całego przykładu, ale postaram się wyjaśnić czego dotyczą moje wątpliwości.

W przykładzie są ustawiane zmienne unii "t_datetime" w ten sposób:

Kod:
zegarek.godz = 21;


Kiedy w samej unii nie ma deklaracji czegoś takiego jak "godz", a jest to częścią struktury "t_dt".
Czy nie trzeba wobec tego dostać się do tej zmiennej w ten sposób:
Kod:
zegarek.data_czas.godz

?
Jeśli nie jest konieczny taki zapis i ten oryginalny z przykładu jest poprawny to co dzieje się w wypadku, kiedy do przykładu dodamy jeszcze jedną strukturę np.
Kod:
typedef struct {
...
uint8_t = godz;
...
} t_dt2;


a sama unia będzie wyglądała tak:

Kod:
typedef union{
uint8_t idx[6];
t_dt data_czas;
t_dt2 dc2;
}


Co w takim wypadku ustawimy pisząc
Kod:
zegarek.godz = 21;
??

No i skoro taki zapis jest możliwy to czy nie można w takim razie w pętli ("zerowanie alarmów") użyć takiego zapisu:
Kod:
budzikX[i] = 0;
zamiast
Kod:
budzikX.idx[i] = 0;
?

Z góry dziękuję za wyjaśnienie.

Przy okazji jeszcze, na stronie 167, w piątej linii, drugiego fragmentu kodu jest literówka ("wsk" zamiast "wsk1") - nie żebym był malkontentem, mi to nie przeszkadza, ale może Pan autor chce poprawiać takie błędy.

Pozdrawiam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2016, o 02:02 
Offline
Użytkownik
Avatar użytkownika

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

tu były moje wywody, ale błędne więc usunąłem ;)



Ostatnio edytowano 3 kwi 2016, o 12:37 przez Daro69, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2016, o 08:24 
Offline
Moderator
Avatar użytkownika

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

ADNS napisał(a):
W przykładzie są ustawiane zmienne unii "t_datetime" w ten sposób:

Ależ oczywiście, że to pomyłka w książce. W ten sposób

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


można byłoby się odwołać do zmiennej godz gdyby wewnątrz była struktura anonimowa np:

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


wtedy zapis:

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


natomiast w przypadku przykładu z książki:

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


bezwzględnie odwoływać się trzeba po nazwie wewnętrznej struktury, czyli:

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



Na szczęście jest to tak oczywisty błąd, że praktycznie każdy czytelnik sobie z nim sam radzi ;) ... Nie mniej jednak postaram się go usunąć w jakimś kolejnym dodruku.

------------------------ [ Dodano po: 1 minucie ]

jako uzupełnienie do książki polecam zajrzeć tu na mojego bloga:

http://mirekk36.blogspot.com/2013/07/st ... adnie.html

myślę, że to wyjaśni sporo, również innych kwestii jeśli jeszcze masz ew kłopoty ze strukturami

------------------------ [ Dodano po: 16 minutach ]

ADNS napisał(a):
Przy okazji jeszcze, na stronie 167, w piątej linii, drugiego fragmentu kodu jest literówka ("wsk" zamiast "wsk1") -


a tu chyba nie chodzi ci o kod, bo w kodzie jest dobrze (komentarzy nie biorę pod uwagę)

tylko o mały błąd w tekście jak na obrazku:

Obrazek

tu ma być jak widać na fioletowo *wsk2 .... i to zostanie również poprawione ;)


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: 3 kwi 2016, o 12:30 
Offline
Użytkownik
Avatar użytkownika

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

dzięki Mirku to wiele wyjaśnia.
nam początkującym nawet takie drobnostki potrafią nieźle namieszać .
w takim razie coś muszę zrobić z moim postem.;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2016, o 12:45 
Offline
Moderator
Avatar użytkownika

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

no ale po to jest forum, żeby sobie zawsze coś na spokojnie wyjaśnić - ja też przy tej okazji zawsze dziękuję za znalezienie jakichś błędów ....

A jak ktoś ma pytania do książki to są zawsze mile tu widziane. SZCZEGÓLNIE gdy się zdarza przypadek, że mi się gdzieś tam ręka omsknęła w książce.

_________________
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: 16 kwi 2016, o 14:51 
Offline
Nowy

Dołączył(a): 17 mar 2016
Posty: 2
Pomógł: 0

Myślałem, że już nie dostanę odpowiedzi, ale widzę, że po prostu chce Pan trzymać wysoki poziom pomocy. Dziękuję ślicznie za wyczerpującą odpowiedź.
Ja w programowaniu mam całkiem spore doświadczenie, ale akurat z C nigdy nie miałem styczności. Nie próbowałem tego uruchamiać. Oczywiście podejrzewałem, że to błąd, ale już nie raz dałem się zaskoczyć jakąś "nowinką", więc wolałem się upewnić, a inni też mogą się nad tym zastanawiać więc postanowiłem napisać na forum.
Ja książkę kupiłem głównie ze względu na te przykłady praktyczne i szczerze mówiąc to liczyłem, że będzie co nieco więcej odnośnie samej elektroniki, ale widziałem, na jakimś filmie, jak mówił Pan, że zajmuje się nauką programowania, więc nie żebym miał teraz jakieś pretensję czy był zaskoczony - po prostu miałem cichą nadzieję... ;)
Skoro już o tym mowa to może ktoś poleciłby jakieś materiały, z których mógłbym poszerzyć moją mizerną wiedzę z elektroniki? Wiem, że jest dużo źródeł, ale jakoś żadne jeszcze do mnie do końca nie trafia. Większość kursów zaczyna od jakiś dziwnych analogi jak porównanie prądu z płynącą wodą. Niby fanie, trafnie, intuicyjnie na początku, ale potem przychodzi jakieś bardziej złożone zagadnienie i ta woda już ni jak nie pasuje do tego modelu, a wręcz burzy całe wcześniejsze wyobrażenie i człowiek zaczyna się zastanawiać czy on w ogóle cokolwiek zrozumiał z tych podstaw... Nie wiem, czy tylko ja tak mam? Może się nie nadaję do elektroniki? Programować bardzo lubię i jak zobaczyłem jak łatwo można zaprogramować ciekawe układy elektroniczne to stwierdziłem, że chcę się tym pobawić, ale jak przychodzi do fizycznych połączeń to często mam wątpliwości...
Ah, zdaje się, że to nie odpowiedni temat na takie wywody, przepraszam, ale jakoś mnie tak naszło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2016, o 15:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Proponuję pozaglądać na Mirkowy blog http://mirekk36.blogspot.com/ oraz na kanał na youtube https://www.youtube.com/user/mirekk36/playlists, gdzie jest dużo praktycznych przykładów dla osób mających BB.

--
Pozdrawiam,
Robert



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO