(07-09-2018, 20:26)Mick_SQ6IYV napisał(a): W sprawozdaniach na laboratoriach podaje się wyniki (obliczeń lub pomiarów) z DOKŁADNOŚCIĄ do dwóch cyfr po przecinku i to dokładnie mnie interesuje.Nie odróżniasz pojęcia rozdzielczość a dokładność. Użyj Google, Wiki itp, poczytaj w książkach. Polecam "Ośla łączkę" z EdW. Był tam odcinek wyjaśniający czym różni się dokładność od rozdzielczości.
Aby uzmysłowić, w prosty sposób czym jest rozdzielczość a czym dokładność (dziwię się, ze nie wiesz), dam przykład
Przypuśćmy, że masz rozdzielczość 1ms a dokładność +/- 50%. Zakładamy, że wykonujesz dwa pomiary, oba czasy są dokładnie takie same, np 10sekund W jednym pomiarze możesz otrzymać 14,999 a w drugim 5,000. Wynik jest poprawny, 10sekund + 50% to 15,000sekundy. O taką dokładność z pewnością nie chodzi, więc jaką? Ile %, %%, ppm czy bpm?
Przy dokładności 50% nie ma sensu rozdzielczość 1ms dla czasów rzędu sekund. Tu, wystarcza dokładność sekundowa. Czy naprawdę nie potrafisz policzyć wymaganej dokładności dla czasów rzędu sekund przy rozdzielczości 10ms?
Uwzględnij też, ze w Arduino jest (pisałem o tym) problem z rozdzielczością 1 czy 10ms. Wynika to z tego, ze niektóre wartości NIGDY nie pojawiają się. Oglądałem kiedyś funkcję millis i niestety, timer co 125ms (jak pamiętam) jest korygowany. Gdzieś w necie jest nawet tabelka jakie są odchyłki. Odchyłki te sa całkowicie kompensowane po sekundzie. Dlatego millis pozwala uzyskać prawdziwa rozdzielczość 1sekunda, ewentualnie,, z przymrużeniem oka 100ms ale nie 10 czy 1ms. Wynika to z bzdurnego użycia trybu przepełnienia timera a nie CTC. Nie będę się rozpisywał z czego to wynika, w każdym razie aby uzyskać rozdzielczość 10ms musisz zmodyfikować obsługę przerwania od timera0 i ustawić go w tryb CTC, co łatwe nie będzie, albo użyć timera 1 lub 0, który będzie generował przerwania dokładnie co 1 czy 10ms.