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



Teraz jest 29 mar 2024, o 09:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 3 lip 2019, o 22:24 
Offline
Użytkownik

Dołączył(a): 18 sty 2015
Posty: 170
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2019, o 22:27 
Offline
Moderator
Avatar użytkownika

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

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ć.

_________________
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 lip 2019, o 22:35 
Offline
Użytkownik

Dołączył(a): 18 sty 2015
Posty: 170
Pomógł: 0

Tyle wystarczy. Przypomnę sobie po powrocie.

Dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lip 2019, o 07:32 
Offline
Moderator
Avatar użytkownika

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

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

_________________
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: 5 lip 2019, o 23:11 
Offline
Użytkownik

Dołączył(a): 18 sty 2015
Posty: 170
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2019, o 03:30 
Offline
Moderator
Avatar użytkownika

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

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

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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