ATNEL tech-forum
https://forum.atnel.pl/

Własne biblioteki, zasięg zmiennych, nazwy zmiennych
https://forum.atnel.pl/topic22381.html
Strona 1 z 1

Autor:  mes mariusz [ 3 lip 2019, o 22:24 ]
Tytuł:  Własne biblioteki, zasięg zmiennych, nazwy zmiennych

Witam.

Jestem na urlopie, więc nie mam pod ręką (niestety nie spakowałem) GB ani BB. Ktoś podpowie, gdzie szukać (książki - po urlopie) lub video poradniki (to mógłbym obejrzeć już teraz) materiały, które wyczerpująco traktują temat zasięgu / widoczności zmiennych w C dla AVR / AVR gcc? Zasięgi / widoczność między pętlą główną / funkcjami / includowanymi bibliotekami, czy nazwy zmiennych mogą się pokrywać, gdy brak widoczności / zasięgu, dobre praktyki, zalecenia, słowem wszystko w temacie.

Zakładam, że nie było video poradnika skoncentrowanego na tym temacie, jeśli jest inaczej, dajcie znać proszę.

Pozdrowienia z Gąsek (między Kołobrzegiem i Koszalinem).
Mariusz

Autor:  mirekk36 [ 3 lip 2019, o 22:27 ]
Tytuł:  Re: Własne biblioteki, zasięg zmiennych, nazwy zmiennych

mes mariusz napisał(a):
Zakładam, że nie było video poradnika skoncentrowanego na tym temacie,

Ciężko robić poradnik wideo na temat tak podstawowych informacji, które zresztą zostały bardzo dobrze opisane w Bluebooku. Nawet nie wiem co można byłoby jeszcze więcej omawiać.

Autor:  mes mariusz [ 3 lip 2019, o 22:35 ]
Tytuł:  Re: Własne biblioteki, zasięg zmiennych, nazwy zmiennych

Tyle wystarczy. Przypomnę sobie po powrocie.

Dzięki.

Autor:  mirekk36 [ 4 lip 2019, o 07:32 ]
Tytuł:  Re: Własne biblioteki, zasięg zmiennych, nazwy zmiennych

mes mariusz napisał(a):
Tyle wystarczy. Przypomnę sobie po powrocie.

Dzięki.

A wtedy gdyby jeszcze było coś niejasne to śmiało tutaj dopytaj

Autor:  mes mariusz [ 5 lip 2019, o 23:11 ]
Tytuł:  Re: Własne biblioteki, zasięg zmiennych, nazwy zmiennych

Tak zrobię. Przy okazji - już teraz zdradzę zaplecze swojego pytania. Kilka (naście?) lat temu (kiedy będąc "wolnym strzelcem" miałem jeszcze na to czas) realizowałem sporo projektów na AVR-ach przy użyciu kompilatora Basica (Bascom AVR). Wśród nich znalazła się również ta centraalka alarmowa -> https://serwis.avt.pl/manuals/AVT5252.pdf

Po 10 latach sięgnąłem po nią, bo dzieciak zażyczył sobie alarmu do pokoju. Po wspomnianych 10 latach robię upgrade firmware-u ;-) bo trzeba wprowadzić tryby pracy (przynajmniej rozdział na biuro i sypialnię dziecka) oraz obsługę wielu użytkowników (przynajmniej dziecko, mama, tata). I jeszcze kilka innych bajerów.

W swoich prostych urządzeniach (za czasów Bascoma) nie posiłkowałem się funkcjami. Wszystko oparte było na sub-ach (procedurach) i call-owaniu do nich. Ponadto operowałem wyłącznie na zmiennych globalnych. Być może Bascom wspierał funkcje, a jeśli funkcje, to może i podział na zmienne lokalne i globalne. Nie korzystałem z tego. Optymalizacja kodu leżała zatem w moich rękach. Zmienne starałem się deklarować jako możliwie uniwersalne, i jeśli jakaś nie była krytyczna, używałem jej wielokrotnie w różnych procedurach. Wiedziałem, że jeśli wykonuje się dana część kodu, w danym momencie, "współdzielenie" zmiennej nie będzie miało złych następstw (a pamięć mikrokontrolera była wykorzystywana w miarę, na moje możliwości, optymalnie).

Z innego z kolei projektu pamiętam, że próbowałem duży plik .bas podzielić na osobne pliki, opcjonalnie załączane (korzystając z Bascomowego dobrodziejstwa #include). Pamiętam, że z nieznanych mi wtedy przyczyn (zdaje się, że mimo poprawnej kompilacji), nie chciało mi działać to poprawnie. Przeniesione na powrót do jednego dużego pliku .bas znów wszystko zaczęło działać poprawnie.

C wraz z dobrodziejstwem tworzenia funkcji, z całym inwentarzem zasięgu zmiennych i możliwości wypychania funkcji do zewnętrznych plików - bibliotek, pozwoli uczynić kod dużo bardziej przejrzystym, zwięzłym i optymalnym. I choć siadając do kodu, który pisałem 10 lat temu, nie stanowi dziś dla mnie problemu nawet mocne przemodelowanie całości (widać, to co pisałem miało swój porządek, ręce i nogi), to korci mnie, by przenieść kod (choćby w celach ćwiczebnych) z basica do C, przy okazji stworzyć osobną bibliotekę z wszelakimi funkcjami przydatnymi w budowaniu centralek alarmowych), tak, by główny kod, korzystający z tej biblioteki stał się maksymalnie przejrzysty i zwięzły, a modernizacja firmware-u stała się jeszcze prostsza i przyjemniejsza.

PS. Jeśli zamieszczenie linku do .pdf-a koliduje z regulaminem, link usunę (dajcie znać proszę).

Pozdrawiam
Mariusz

Autor:  mirekk36 [ 6 lip 2019, o 03:30 ]
Tytuł:  Re: Własne biblioteki, zasięg zmiennych, nazwy zmiennych

mes mariusz napisał(a):
PS. Jeśli zamieszczenie linku do .pdf-a koliduje z regulaminem,

Nie narusza a przy okazji ładna konstrukcja i dobry cel, żeby przerobić wszystko na C

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/