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
Wartość edukacyjna wątku wzrasta Wink I bardzo dobrze, zachęcam gorąco do eksperymentów i publikowania ich wyników tutaj na forum. Oczywiście nie wszystkie eksperymenty będą udane, patrz moje walki z RIT-em na potencjometrze. Ale co się człowiek nauczył przy tym to jego.

Andrzej 256Mega to kawał procka jest, ja na tym swoją drukarę 3D zrobiłem (RAMPS), do zabaw z DDS to takie maleństwo jak 328 lub 32u4 wystarczy.

Cytat:...chodzi o to, żeby stany się wyrównały bezwarunkowo, po to, żeby kolejne działanie odbyło się wyłącznie wtedy, kiedy są różne

MAc jedna z lepszych krótkich definicji tego zagadnienia jakie słyszałem.
Ogólnie ta metoda jest jak najbardziej polecana wszędzie tam gdzie nie używamy przerwań a zależy nam na dostępności procesora. Ja tutaj celowo użyłem metody z delay-ami by początkujący złapali ideę.
Czasami trzeba ten krok zrobić by zdać sobie sprawę z ograniczeń.

A jak już jesteśmy przy ograniczeniach to moja metoda na obsługę s-metra ma jedną wadę ciekaw jestem kto zgadnie/wie jaką. Taki mały quiz...

Dla przypomnienia wygląda to tak:

Kod:
const long s_metr_update_interval = 100;     //interwał odświeżania s-metra w msec
long s_metr_update_time = 0;                 //zmienna pomocnicza do przechowywania czasu następnego uruchomienia s-metra


Kod:
void show_smetr(){                                
  if(millis() >= s_metr_update_time){                              //sprawdzam czy już jest czas na wykonanie funkcji

...cos tam robie i robie i robie, a następnie

     s_metr_update_time = millis() + s_metr_update_interval;       //ustawiam czas kolejnego wykonania tej funkcji
  }
}

...przede wszystkim nie zakłócać...
Cytuj


Wiadomości w tym wątku

Skocz do:


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