28-10-2014, 20:46
Wartość edukacyjna wątku wzrasta
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.
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:
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-metraKod:
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ć...

