To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
#54
Złomek wygląda super. ;-)
Proponuję tylko odwrócić kolejność ustawiania kroku, bo naturalnym jest coraz dokładniejsze wstrajanie się w stację - czyli krok powinien się zmniejszać a nie zwiększać.

I jeszcze jedno - ponieważ smeter zabiera trochę czasu procesora, to dobrze jest go trochę zoptymalizować. Doczytałem kiedyś, że map() jest jedną z paskudniejszych funkcji arduino. Jeżeli nie najwolniejszą.
Dlaczego? - bo żeby zrobić mapowanie to mnoży i dzieli. a arduino tak naprawdę, to szybko potrafi dzielić wyłącznie przez 2
Zatem lepiej zrezygnować z paru pikseli, zostawić ich 80 i zastosować szybkie przesunięcie zamiast mapowania:
(>>7 to przesunięcie liczby binarnej o 7 pozycji czyli tak naprawdę podzielenie przez 128)

old:
int s_position = map(s_value,0,1023,1,83);

new:
int_position = (s_value*10)>>7

czyli w przetłumaczonej na ludzki język wersji (uawga tylko dla ludzi nie dla procesora):
int_position = (s_value*10)/128 - to tak żeby sobie sprawdzić :-)

zwykle jest tak, że przy atmegowej dokładności przetwornika analogowo cyfrowego możemy sobie pozwolić na zaokrąglenia
Teraz, jak jeszcze kodu jest mało to nie ma większej wagi, ale jak się funkcji namnoży, to skracanie rzeczy dziejących się "stale" może mieć znaczenie.

MAc
mrn

PS
mam nadzieję, że się gdzieś nie walnąłem :-)
Cytuj


Wiadomości w tym wątku

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości