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



Teraz jest 19 kwi 2024, o 09:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 7 gru 2017, o 21:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 sty 2013
Posty: 80
Lokalizacja: Trzciniec
Pomógł: 0

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

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

możemy się dostać do pól struktury przez nazwę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

ale czy możemy się dostać do pola struktury tak jak np. do tablicy po numerze pola?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Zło dobrem zwyciężaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2017, o 21:33 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
ale czy możemy się dostać do pola struktury tak jak np. do tablicy po numerze pola?

a tu sobie sam coś wymyśliłeś troszkę "z kosmosu" .... bo co to miałoby niby oznaczać "po numerze" pola ?

Nie ma czegoś takiego - żeby wskaźniki działały wg dowolnego pomysłu użytkownika ;) ... trzeba się nauczyć wskaźników i zobaczyć jakie one dają możliwości

możesz zatem dostać się np do DOWOLNEGO bajtu (uważaj, BAJTU) takiej struktury np w ten sposób:

uint8_t * ptr = (uint8_t*)&time;

i wtedy proszę

uint8_t a = ptr[0];

ale miej na uwadze, że odczytujesz JEDEN BAJT a nie jeden element struktury. Struktura to nie TABLICA gdzie KAŻDY element musi być takiego samego typu - więc jak możesz próbować oczekiwać, że KAŻDY element struktury będzie takiego samego typu ?

Jeśli wiesz że twoja struktura zawiera SAME ELEMENTY jedno -bajtowe - to nawet w Bluebooku masz przykład jak do tego podejść

zastosować połączenie UNII ze strukturą - ale tu już proszę zajrzyj do Bluebooka i najwyżej powiedz czego nie rozumiesz - żebym nie musiał od nowa tutaj pisać tego co już jest w książce ok ?

Zajrzyj też na bloga

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

_________________
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: 7 gru 2017, o 21:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 sty 2013
Posty: 80
Lokalizacja: Trzciniec
Pomógł: 0

Dzięki.
O to mi chodziło.
W przykładowej strukturze są same uint8_t więc nie ma problemu.
Czytałem ten rozdział z BB o wskaźnikach ze 100 razy.
Widocznie umysł już nie ten. :)
Dzięki jeszcze raz.

_________________
Zło dobrem zwyciężaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2017, o 22:00 
Offline
Moderator
Avatar użytkownika

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

to masz tam przykład z unią i dostępem poprzez tablicę bajtów ;)

gdyby coś było niezrozumiałe jeszcze z BB to śmiało pytaj - bardzo chętnie pomogę

_________________
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: 7 gru 2017, o 22:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 sty 2013
Posty: 80
Lokalizacja: Trzciniec
Pomógł: 0

Sprawdziłem przed chwilą, że można sobie policzyć które pole w strukturze chcemy zmienić czy odczytać.
Dla przykładowej struktury:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

bo hh-0, mm-1 i 2, ss-3, s1 4 i 5 a s2=6

_________________
Zło dobrem zwyciężaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2017, o 22:32 
Offline
Moderator
Avatar użytkownika

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

uwaga - bo się przejedziesz ;) w tej strukturze masz jedno pole 2-bajtowe ;)

_________________
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: 7 gru 2017, o 22:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 sty 2013
Posty: 80
Lokalizacja: Trzciniec
Pomógł: 0

Dwa pola. uint16_t mm i uint16_t s1.
Tak, przejechać się łatwo, ale może komuś się przydać ten wpis.
Będę uważał.
Jeszcze raz dzięki.

_________________
Zło dobrem zwyciężaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 gru 2017, o 23:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 sty 2013
Posty: 80
Lokalizacja: Trzciniec
Pomógł: 0

roske i robespierre Dzięki ale pokazaliście jak dostać się do struktury po nazwie pola a mi potrzeba po numerze(indeksie).

Dokładnie mam taki przypadek.
Dostaje po UART takie dane: - 1 która pozycja struktury, 2 wartość pozycji.
Mogę to sobie przeliczać ALE chciałbym dostać się do struktury jak do tablicy.
struktura[która pozycja struktury]=[wartość pozycji]
Jak się nie da to nie ALE lubię podrążyć :)

_________________
Zło dobrem zwyciężaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2017, o 15:52 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

W pliku menu.h zdefiniowałem typ strukturalny
Zadeklarowałem zmienne do tego typu

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


W pliku menu.c wygląda to tak:

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


To jest tak samo jak opisywał Mirek w poradniku o strukturach
Wprowadziłem modyfikacje która umożliwia mi wyłuskiwanie nastaw programu po indeksie.
czyli gdzieś w kodzie

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



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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