30-08-2018, 22:27
(Ten post był ostatnio modyfikowany: 30-08-2018, 22:34 przez Robson Kerman.)
(30-08-2018, 00:20)kaczakat napisał(a): Natomiast każda zmienna globalna, czyli taka zdefiniowana przed setup, jest dostępna dla każdej funkcji w programie. Jest cały czas, cały czas zajmuje miejsce w RAM, należy więc z rozwagą je używać.
Ja proponuję, aby od początku zabawy z programowaniem µC, starać się nie używać zmiennych globalnych.
Przekazywać wartości przez funkcje. Używać zmiennych z modyfikatorem static. Jeśli chcemy pracować na zmiennej z poza funkcji, powinno się przekazać wskaźnik zmiennej jako argument. Wtedy taka funkcja modyfikuje zmienną spoza funkcji bez użycia return, więc może być void , a to jest bardzo istotne w rozbudowanych systemach. A przecież każdy, kto zaczyna przygodę z jakimkolwiek µC, marzy o tym, aby w przyszłości tworzyć skomplikowane systemy sterowania i regulacji. Niech więc uczy się dobrych nawyków.
Edit.
Napisałem o przekazywaniu wartości przez funkcje, a potem żeby przekazywać wskaźniki jako argumenty.
Wiem, że jedno kłóci się z drugim, ale w pierwszym przypadku miałem na myśli obiekty zwracające zmienne publiczne.
W Arduino jest na tyle dziwnie, że mamy taki język pomiędzy Objective C, a C++ i obydwa skundlone, że lepiej pisać w C i omijać te ograniczenia wielkim łukiem.
Myślę, że każdy poważnie myślący o projektowaniu systemów wbudowanych, szybko ucieknie od Arduino w kierunku czegokolwiek innego.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.