![]() |
Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - Wersja do druku +- HomeMade (http://sp-hm.pl) +-- Dział: Urządzenia nadawczo odbiorcze KF (/forum-62.html) +--- Dział: Syntezy częstotliwości i moduły DSP (/forum-74.html) +--- Wątek: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO (/thread-2164.html) |
RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SP2IPT - 28-10-2014 14:41 MAc - przenioslbym ostatnia linie wyzej ![]() O tak: MagicznyKod napisał(a):buttonState = digitalRead(stepPin); Jak oszczedzac czas to oszczedzac ![]() pz RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ1GYQ - 28-10-2014 17:59 Witam Cytat:Napisane przez SQ9MDD - 26-10-2014 22:45 Pytam się Rysiu bo ja mam arduino z prockiem co ma 256kb atmega 256 , i nie wiedziałem ile w mniejszym arduino nano sofcik zajmuje miejsca. Pytanie bardziej z Ciekawości :-) Pozdrawiam Andrzej RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SP9MRN - 28-10-2014 18:48 (28-10-2014 14:41)SP2IPT napisał(a): MAc - przenioslbym ostatnia linie wyzejObawiam się, że jak przeniesiemy do "if" to stracimy istotę debouncingu. 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. ale mogę się mylić. MAc mrn RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ9MDD - 28-10-2014 21:46 Wartość edukacyjna wątku wzrasta ![]() 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 Kod: void show_smetr(){ RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SP6IFN - 28-10-2014 21:58 No ja wiem....ale myśmy o tym debatowali telefonicznie. Dlatego tez dobrowolnie nie wezmę udziału w quizie aby dać szansę innym ![]() Rysio! RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SP9MRN - 29-10-2014 0:04 no ja zgaduję, że basen za mały ;-) MAc RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ5OUX - 29-10-2014 15:32 Czy chodzi o to, że metoda millis() po ok 50 dniach działania programu "przekręca" się i zaczyna liczyć od 0 ? Teoretycznie nie wejdzie wtedy do tego if`a. Norbert RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ9MDD - 29-10-2014 15:44 Brawo Norbert! Dokładnie z tym będzie problem. W zasadzie to z tym i jeszcze z jedną rzeczą, już tłumaczę. Otóż millis() używa licznika 32bit bez znaku, czyli unsigned long, ma zakres od 0 do 4,294,967,295 (czas w milisekundach, to jest około 48dni z małym hakiem). Jednakże w całym programie błędnie przypisałem do liczenia zmiennej czasu, zwykłego longa a ten to też liczba 32bit, ale w zakresie od -2,147,483,648 do 2,147,483,647. Czyli skróciłem swój licznik w którym mogę przechowywać kolejny moment odpalenia funkcji s-metr o połowę. A zatem po około 24 dniach kolejne odsunięcie wykonania funkcji s-metra trafi w obszar którego mój licznik nie może przyjąć. Reasumując jeśli przez 24dni nie wyłaczymy tego transceivera s-metr przestanie działać. Należy zatem zadbać o obsługę przekroczenia licznika milis() i dodatkowo użyć właściwej zmiennej do liczenia czasu. RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SP9MRN - 29-10-2014 17:49 Albo oszczędzać prąd i raz na 3 tygodnie wyłączyć radio i pójść na spacer :-) MAc RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ9MDD - 30-10-2014 20:01 Mac nie doceniasz myślę naszych beta testerów, sądzę że za niecałe trzy tygodnie były by pierwsze zgłoszenia błędów he he he ![]() Poprawiłem zmienne i tylko zmienne. A teraz w ramach ćwiczeń zostawiam pole do popisu dla Was w kwestii zabezpieczenia przed skończeniem się licznika millis(). Czy resetować procesor gdy dojdziemy do końca licznika? Czy ustawiamy nowe przesunięcia wykonania funkcji s-metra, gdy licznik się przekręci? A może jeszcze inaczej? Panowie do dzieła ![]() UPDATE 2014.10.30 19:01: Poprawiłem i wyczyściłem kod najnowsza wersja poniżej: |