Cześć.
Robię projekt polegający na podzieleniu trasy kolejki piko na odcinki punktami pomiarowymi w celu zliczania ilości osi pociągów znajdujących się na poszczególnych odcinków. Każdy punkt pomiarowy składa się z dwóch czujników odbiciowych (CNY70), podłączonych do Mikrokontrolera Atmega88.
Napisałem program, który liczy osie przejeżdżające pomiędzy dwoma sąsiednimi odcinkami. Poniżej zamieszczam kod funkcji LicznikOsi_XX, którą chciałbym zuniwersalizować (nie wklejam całego programu ponieważ problem dotyczy ww. funkcji, a cały program składa się z 5 modułów i w sumie jest sporo kodu, a nie chce zaśmiecać forum
. Oczywiście jeżeli będzie taka potrzeba to wkleję cały program)
Tak napisany program działa prawidłowo, jednak kolejne punkty pomiarowe wymagają zastosowania kolejnych funkcji, cyklicznie wywoływanych w pętli while, właściwie identycznych, wymagających tylko zmiany zmiennych (np. PP_AB na PP_BC, Odc_A na Odc_B, Odc_B na Odc_C itd.). Jest to jednak rozwiązanie pracochłonne (konieczność ręcznej zmiany zmiennych we wszystkich liniach programu), mało funkcjonalne (przy zmianie układu odcinków ponownie konieczność ręcznej zmiany zmiennych w całym programie) i do tego mało ekonomiczne (powstaje spora ilość kodu, zajmująca sporą ilość pamięci.
Podjąłem nieudaną próbę stworzenia uniwersalnej funkcji, w której cyklicznie, w odpowiednie miejsca programu, wprowadzane by były zmienne dotyczące kolejnych punktów pomiarowych:
Szybko stało się jasne, że metoda z wprowadzeniem tablic nie ma szans powodzenia, jednak wstawiłem tutaj nieudany kod, aby było bardziej jasne jaki efekt chciałbym osiągnąć.
Proszę o informacje, podpowiedzi, sugestie od bardziej doświadczonych programistów jak (jakimi narzędziami) napisać uniwersalną funkcję dla opisanego wyżej programu (i czy gra jest warto świeczki - tzn. czy napisanie uniwersalnej funkcji nie skomplikuje bardziej programu niż da korzyści).
Ponieważ jestem na początku mojej przygody z programowaniem, a powyższy post to pierwszy mój post na forum programistycznym, jeżeli mój post został napisany w sposób, który zniechęca do odpowiadania na niego, proszę o komentarz wyjaśniający, co należy w nim zmienić, aby była szansa uzyskania konstruktywnej odpowiedzi.
Robię projekt polegający na podzieleniu trasy kolejki piko na odcinki punktami pomiarowymi w celu zliczania ilości osi pociągów znajdujących się na poszczególnych odcinków. Każdy punkt pomiarowy składa się z dwóch czujników odbiciowych (CNY70), podłączonych do Mikrokontrolera Atmega88.
Napisałem program, który liczy osie przejeżdżające pomiędzy dwoma sąsiednimi odcinkami. Poniżej zamieszczam kod funkcji LicznikOsi_XX, którą chciałbym zuniwersalizować (nie wklejam całego programu ponieważ problem dotyczy ww. funkcji, a cały program składa się z 5 modułów i w sumie jest sporo kodu, a nie chce zaśmiecać forum
Kod: C / C++
Tak napisany program działa prawidłowo, jednak kolejne punkty pomiarowe wymagają zastosowania kolejnych funkcji, cyklicznie wywoływanych w pętli while, właściwie identycznych, wymagających tylko zmiany zmiennych (np. PP_AB na PP_BC, Odc_A na Odc_B, Odc_B na Odc_C itd.). Jest to jednak rozwiązanie pracochłonne (konieczność ręcznej zmiany zmiennych we wszystkich liniach programu), mało funkcjonalne (przy zmianie układu odcinków ponownie konieczność ręcznej zmiany zmiennych w całym programie) i do tego mało ekonomiczne (powstaje spora ilość kodu, zajmująca sporą ilość pamięci.
Podjąłem nieudaną próbę stworzenia uniwersalnej funkcji, w której cyklicznie, w odpowiednie miejsca programu, wprowadzane by były zmienne dotyczące kolejnych punktów pomiarowych:
Kod: C / C++
Szybko stało się jasne, że metoda z wprowadzeniem tablic nie ma szans powodzenia, jednak wstawiłem tutaj nieudany kod, aby było bardziej jasne jaki efekt chciałbym osiągnąć.
Proszę o informacje, podpowiedzi, sugestie od bardziej doświadczonych programistów jak (jakimi narzędziami) napisać uniwersalną funkcję dla opisanego wyżej programu (i czy gra jest warto świeczki - tzn. czy napisanie uniwersalnej funkcji nie skomplikuje bardziej programu niż da korzyści).
Ponieważ jestem na początku mojej przygody z programowaniem, a powyższy post to pierwszy mój post na forum programistycznym, jeżeli mój post został napisany w sposób, który zniechęca do odpowiadania na niego, proszę o komentarz wyjaśniający, co należy w nim zmienić, aby była szansa uzyskania konstruktywnej odpowiedzi.
Moderowany przez piotrva:Poprawiam znaczniki syntax