Pytanie:
Dlaczego potrzebna jest przerwa między czytaniami?
Victor He
2016-02-17 09:30:02 UTC
view on stackexchange narkive permalink

Kiedy nauczę się samouczka w

oba przykłady kodu zawierają wiersz kodu delay (1) i nie rozumiem jasno komentarzy:

  delay (1 ); // opóźnienie między odczytami dla stabilności  

Stabilność dla / czego?

Przesłane do [Arduino Forum] (http://forum.arduino.cc/index.php?topic=379763).
tak, obawiałem się, że nikt nie odpowie na moje pytanie, ponieważ myślę, że nie ma tak wielu aktywnych użytkowników jak Stack Exchange.
Nie mogłeś * zbyt * się bać, ponieważ zadawałeś pytania w ciągu godziny. Może prześlij post, jeśli minął dzień lub dwa bez odpowiedzi. Forum Arduino ma dość szybką odpowiedź na pytania. Otrzymałeś odpowiedź tam * 8 minut * po wysłaniu. I kolejny 5 minut później. Więc nie do końca wierzę w ten twój „strach”.
przepraszam , to moja wina , nie zrobię tego ponownie
Dwa odpowiedzi:
Nick Gammon
2016-02-17 10:34:46 UTC
view on stackexchange narkive permalink

Te opóźnienia to nonsens. Nie dodają niczego do stabilności. Najlepsze, co możesz powiedzieć, to to, że powstrzymują cię przed spamowaniem twojego portu szeregowego. (Jednak 1 ms nie jest zbyt długi).

Czasami ludzie wprowadzają opóźnienie, ponieważ „wydaje się, że działa lepiej” bez zbadania przyczyny. Spekuluję, że w tym przypadku autor mógł używać opóźnień, aby poprawić odbieranie danych szeregowych i wpadł im do głowy pomysł, że sporadyczne opóźnienia od czasu do czasu „poprawiają stabilność”.

Chetan Bhargava
2016-02-23 08:11:12 UTC
view on stackexchange narkive permalink

Stabilność analogowa

Z Arkusz danych ATMEGA328 Strona 240:

Gdy napięcie odniesienia pasma zabronionego jest użyte jako wejście do ADC, ustabilizowanie się napięcia zajmie pewien czas. Jeśli nie jest ustabilizowana, pierwsza wartość odczytana po pierwszej konwersji może być błędna.

Więc jeśli wykonujesz wiele odczytów, musisz poczekać kilka cykli.

Opóźnienia nie są wymagane w przypadku korzystania z automatycznego wyzwalania:

W przypadku korzystania z automatycznego wyzwalania preskaler jest resetowany, gdy wystąpi zdarzenie wyzwalające. Zapewnia to stałe opóźnienie od zdarzenia wyzwalającego do początku konwersji. W tym trybie próbkowanie i trzymanie odbywa się dwa cykle zegara ADC po narastającym zboczu sygnału źródła wyzwalania. Do logiki synchronizacji używane są trzy dodatkowe cykle zegara procesora.

Również w przypadku odczytywania różnych kanałów tego samego modułu ADC należy zapewnić opóźnienie między odczytami, aby analogowy MUX był ustawiony i kondensator S&H jest naładowany.

Ta informacja jest z punktu widzenia sprzętu i nie jestem pewien, czy wewnętrzne procedury ADC Arduino kompensują te opóźnienia.

Stabilność cyfrowa

Ze schmatic samouczka cyfrowego czytania:

enter image description here

Na schemacie przycisk nie jest elektrycznie -bounced. Opóźnienie w odczytywaniu stanów pomogłoby w usunięciu odbijania go w oprogramowaniu.

Jak zasugerował Nick Gammon, poprawiają one również powodzie seryjne.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...