Hej!
Witam wszystkich. Wiec ostatnio na fali jest pisanie bibliotek wiec i ja pomyslalem ze zabiore sie za jedna. Jednakze mam chyba problemy ze zrozumieniem interakcji pomiedzy wskaznikami w uniach / strukturach
Mam sobie taka definicje unii. Na wstepie dodam , ze ten "qPacket" pochodzi z poradnika Mirka o DS3231 gdzie uzyskuje on szybki dostep do struktury co pozniej chcialem wykorzystac w obliczanie "checksum"
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wiec mam kilka pytan (oczywiscie krytyka kodu i podejscia mile widziana
)
AD.1
W programie glownym chcialbym zainicjalizowac moj wskaznik na ta unie zeby nie "bujac sie" po przypadkowych adresach. Czy powinenem uzyc malloc ? czy po prostu hardcore jakas wartosc i bede mial miejsce w pamieci na caly wskaznik ?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
AD.2 No i teraz fajna rzecz - chcialbym sobie zrobic funkcje ktora bedzie brala ten wskaznik jako prarametr - obrabiala go - i zwracala sam wskaznik dzieki czemu mozna bedzie wykorzystac go w innych funkcjach. W zwiazku z tym pytanie czy takie podejscie tu jest dobre czy gdzies sa jakies super bledosy
?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
AD.3 No i teraz super ale podejrzewam , ze zeby wyslac to przez UART musze zrobic rzutowanie na ninny typ ? Napisalem sobie dwie funkcje.
AD.3a Jedna funkcja ma wyslac wlasnie caly pakiet przez UART - powinno byc rzutowanie na (char *) ?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
AD.3b a druga to calkowita podstawa do wyslania w UART
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
AD.4 Obliczanie Checksum - wykorzystujac wlasnie ten indeksowany szybki dostep chcialem obliczyc checksum (*pomysl z LONG pochodzi z kodu w internecie
) Wiec chcialem go obliczyc a nastepnie uzywajac przesuniec bitowych odpowiednio ustawic w moim pakiecie.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wiec podsumowujac
moje pytania to :
AD.1 - Czy poprawnie powinenem jakos zainicjalizowac wskaznik ? I jesli tak (* a wydaje mi sie ze tak:) ) to w jaki sposob zainicjalizowac wskaznik do takiej uni ?
AD.2 - Czy forma zwracania wskaznika aby pozniej go wykorzystac jest poprawna ?
AD.3 - Czy moj "pomysl" wysylania przez UART ma szanse na sukces
?
AD.4 - Czy uzycie long to dobry pomysl ? Podejrzewam , ze w tym wypadku takze brakuje mi rzutowania na inny typ danych ?
Z gory dzieki za wsparcie