Ktoś pisze bzdury. Ta metoda da kilka procent fcpu. Lepiej zliczyć impulsy w określonym czasie za pomocą timera w trybie licznika. Drugim timerem mierzysz ten czas. Dla niskich częstotliwości lepiej mierzyć okres impulsu za pomocą ICP.
Bez zgłębiania się w bibliotekę której nie pokazałeś, obstawiam że prawidłowa wartość sekund to 1-59.
Uprzedzam - nie znam się na Arduino ;) Widzę dwie opcje: 1. Przepisać funkcję receive tak aby nie blokowała programu. 2. Zostawić funkcję receive w pętli głównej a pozostałe funkcjonalności obsługiwać w przerwaniu (np. od timera).
Na tym procku(at)16MHz można generować sygnały od ~0Hz (bardzo niskie, nawet okres równy miesiącom...) do ~16MHz (w pewnych możliwościach można się zbliżyć do tych 16MHz). Zatem zapewne problem wynika z nieumiejętnego programowania. Pokaż jaki program naskrobałeś to go skomentujemy. A sprzętowo może pomóc Timer...
Witam, w jakim trybie pracuje timer po uruchomieniu Arduino, a przed zapisem do OCR1A zanim zmienisz tryb na CTC? Pozdrawiam.
Należy to zrobić na przerwaniach. Podział 1/32 akurat w tym wypadku nie będzie chyba dobry bo będzie trzeba odmierzać czas z dokładnością 50pikoSekund Przy podziale 1/1 to już "tylko" z dokładnością 5uS. Szukaj "arduino timer interrupt"
skoro wykrywasz zmiany w przerwaniu to można tam ustawić flagę (zmienną bool) i wtedy wyświetlać w głównej pętli i ją kasować. Prawdę mówiąc obsługa enkodera w przerwaniu od pinu też nie jest najlepszym pomysłem - chyba, że to enkoder optyczny. Lepiej użyć przerwania timera.
Dbaj o prawidłowe formatowanie kodu to będziesz więcej widział: [syntax=c]int LedPin = 13; int InPin = 10; int delayPeriod = 330; int count1 = 0; int count2 = 0; //5blysków,5sekund przerwy,5blyskow,15s przerwy... void setup() { pinMode(LedPin, OUTPUT); pinMode(InPin, INPUT_PULLUP); } void loop() { if (digitalRead(InPin) == LOW) { digitalWrite(LedPin,...
google "arduino timer"
Na pewno nie uzyskasz efektu DD:HH:MM:SS, bo masz kropki na dziesiętne tych ledach. Poza tym użyj ESP8266, jest tam przykład czasu NTP, timer czy RTC po paru dniach może się rozjechać o parę sekund, musi sobie ten czas co jakiś czas sam korygować. Do obsługi polecam bibliotekę DigitLedDisplay, przykładowe wyświetlenie ciągu liczb wygląda tak: ld.printDigit(12345678),...
Myślę, że to rozwiązanie będzie dobre i całkowicie wystarczające: [url=http://playground.arduino.cc/Code/T... - Timer Library Ma swoje wady, ale tutaj są nieistotne.
Przecież masz do pomocy wujka Google: na tifr arduino odpowiada np. http://mikrokontrolery24.pl/mikroproceso... a jak jeszcze dodasz OCF1A , to https://web.ics.purdue.edu/~jricha14/Tim... A w https://www.robotshop.com/community/foru... jest opis programowania timerów - Timer1 jest...
Ponieważ jest sobota i jestem leniem to gotowego programu pisał nie będę. Poza tym cała frajda z Arduino to napisać własny program, który będzie działał. funkcja Delay jest najgorszym z możliwych rozwiązań, bo podczas jej wykonywania program stoi. Proponowałbym zapoznać się z funkcją timer. Proste przykłady są tutaj https://playground.arduino.cc/Code/Timer...
Takie proste, a takie skuteczne, problem rozwiązany, podziękowanie poszło. Dodano po 59 Problem rozwiązany przez zmianę timera.
W sumie to by mogło być, ale dalej mnie zastanawia dlaczego nie mogę uruchomić tego timera.
Warto poczytać o przerwaniach :) lub uzyć czegoś jak: http://playground.arduino.cc/Code/Timer
Zamiast delay() możesz użyć millis(). Biblioteki dla wielowątkowości też znajdzesz. Dla krokowców możesz użyć biblioteki AccelStepper: http://www.airspayce.com/mikem/arduino/A... Dostępne biblioteki możesz przeglądać w menadżerze: https://www.arduino.cc/en/Guide/Librarie...
A jest lepiej gdy podajesz z palca i masz ustawiony PULLUP? Generalnie jeśli częstotliwość impulsów jest duża to lepiej zliczać je na timerach i przerwanie generować od przepełnienia timera.
Wydaje się, że można tu zastosować algorytm wyświetlania multipleksowanych Led. Tyle, że zamiast kluczy są odpowiednie pozycje na okręgu. Pozycja to minimum 1/60 czasu pełnego obrotu. Przerwanie int uruchamia timer w trybie capture. Po pełnym obrocie stan timera powinien być podzielony przez ilość działek na okręgu. I tu potrzebny jest chyba drugi timer,...
Użyj timera do likwidacji drżenia styków.
Moim zdaniem (dzika spekulacja) jest to efekt błędu w koncepcji tych funkcji, a nie w ich implementacji. Prawdopodobnie trzeba cały moduł stworzyć od nowa, korzystając z przerwania timera.
Do pomiaru krótkich czasów czy z dużą rozdzielczością używa się przechwytywania w timerach a nie pulseIn().
Poczytaj sobie o przerwaniach od timera. Np. tutaj: http://playground.arduino.cc/code/timer1
Zacznij od znalezienia jakiegoś kursu jest ich tysiące w sieci: https://www.arduino.cc/en/Tutorial/HomeP... http://mikrokontrolery.blogspot.com/p/sp... Sam musisz pisać swoje programy, a na forum pytać, gdy masz jakiś konkretny problem pokazując kod swojego programu i schemat połączeń.
Podałem Ci gotowy kod. Nigdzie nie używasz timerów a tylko mierzysz czas jaki upłynął od uruchomienia mikrokontrolera ( funkcja millis() ) i porównujesz z zapamiętanym poprzednio w zmiennej o nazwie timer
W ogóle zabierasz się za to źle - przerwania od przełączników to zły pomysł - poczytaj o drganiach styków i zobacz ile przerwań może wygenerować jedno przełączenie. Stan przycisków sprawdzaj cyklicznie w przerwaniu timera (są biblioteki Timer...).
Mam pytanko Chciałem sobie napisać włącznik czasowy Astro ale z biblioteką są jakieś jaja Znalazłem kilka przykładów w sieci ale wszystkie oparte o: #include <TimeLord.h> Z informacji na stronie: http://swfltek.com/arduino/timelord.html wynika, że to już przestarzała biblioteka. Mam pytano jaka teraz jest biblioteka na "topie"?
Znalazłem takie pliki jak w załączniku, ale w nich pokazane są różne Timery. Czy możecie mi pomóc w znalezieniu wykorzystywanego Timera?
Szukaj pod hasłem "Timer Interrupt Capture" przykładów jest od groma nawet pod Arduino ATMEGA328..
Na przykład; https://www.instructables.com/Arduino-Ti...
(at)ElektrodaBot napisz timer Arduino. Klasa C++ powinna zawierać metody: run() - umieszczaną w pętli loop, sprawdzającą czy ma zostać wykonane jakieś zadanie setTimeout(function, milliseconds) setInterval(function, milliseconds) clearInterval() - odpowiedniki funkcji z JavaScript timeToTheNextEvent() - zwracającą ilość milisekund do następnego wydarzenia...
Czy ktoś podzieli się przykładem lub podpowie co robię źle? Arduino IDE i ESP32. Potrzebuję przerwanie co 2 ms od sprzętowego timera. Wszystkie przykłady dotyczą arduino w starszych wersjach, gdzię między innymi funkcja timerBegin przyjmuje 3 argumnty. Od wersji 3.0 z tego co wyczytałem przyjmuje tylko jeden. Bazuje na tym https://espressif-docs.readthedocs-hoste...
http://forum.atnel.pl/topic7228.html i tu też, ale w kontekście Atmega8: http://mikrokontrolery.blogspot.com/2011... A absolutna baza to nota katalogowa i rozdział o timerach
Algorytm jest już prawie gotowy bo opisałes co ma być zrobione. Mozesz sobie to narysować w postaci schematu blokowego. Gdyby monitorować 1 pin i sterowac 1 wyjście sprawa wtedy jest prosta i da się to zrobić bez timera dokłądnie realizując zapisany algorytm i "czekająć" określony czas. Gdy się ma juz wiecej wejśc/wyść obsłużyć w ten sposob to jednym...
Osobiście, to pewnie napisałbym obsługę na przerwaniach od timera, np 10ms. Suma sumarum wciagu dnia procek zuzyje wiecej energi bo jednak co 10ms wykonuje przerwanie i obliczenia (sprawdzanie stanow czujnika) W moim przykladzie procek wybudza sie tylko na czas przerwania i niech bedzie ich 1k w ciagu dnia , to i tak mniej operacji na dzien niz przy...
Tak jak teraz jest ok ? Jeśli sygnał wejściowy nie ma być rozdzielony galwanicznie od mikrokontrolera, to schemat jest OK. Rezystor OK, pod warunkiem, że dobrze policzyłeś jego wartość znając napięcie OUT i parametry diody transoptora. O jaki timer chodzi ? Jakiś wbudowany timer mikrokontrolera .. Tak, ten.
Witam, .......... Czy arduino uno posiada może wbudowany licznik który działa niezależnie od programu? Tak aby przerwaniem co sekunde mógłbym sprawdzać jaka jest wartość w liczniku który liczyłby impulsy? TAK! Arduino posiada ich trzy, funkcjonujące totalnie niezalenie od wykonywanego programu, z pewnymi jednak warunkami lub ograniczeniami. Są to :...
Witam, piszę pracę inżynierską w oparciu o Arduino Ręce opadają... :( A co do tego programu to zrób sobie Timer programowy wykorzystujący Timer sprzętowy.
Chcesz mierzyć częstotliwość ("hercomierz") czy okres sygnału ("okresomierz")? Częstotliwość jest niska. Przy 3000obr/min to ??? Policzyłeś ile? Można to mierzyć na wiele sposobów. Jaką rozdzielczość chcesz uzyskać? 1Hz? 0,1Hz? 0,01Hz a może 0,001Hz 1Hz to za mało, musisz mierzyć z rozdzielczością co najmniej 0,1Hz jak chcesz mieć stabilność na poziomie...
Najprościej byłoby chyba zapamiętywać sterowanie jako sekwencję zdarzeń rozmieszczonych w czasie, np. 1) wciśnięcie gazu w momencie o timestampie rownym 0.65 sekundy, 2) wciśnięcie skrętu w lewo w czasie 5.2 sek, 3) puszczenie gazu w momencie 8.5 sek, itd. Forma zapisu w pamięci - proponuję zadeklarować typ, w którym każde zdarzenie otrzyma swoją nazwę...
Teraz działa, ale podczas próby wgrania co idzie nie tak: Arduino:1.8.2 (Windows 10), Płytka:"Arduino/Genuino Uno" In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores... from sketch\Universal_Sleep_Timer_Arduino_Cod... Universal_Sleep_Timer_Arduino_Code:170: error: variable 'NApowerCodes' must...
i bym chciał się dowiedzieć jak mam napisać ten kod żeby impuls CLK był cały czas a nie co 6 sekund Już napisałem sprzętowy timer. Ustawiasz częstotliwość z jaką ma pracować i to wszystko. Dodano po 1 PS Jaki zakres częstotliwości CLK jest potrzebny? Dodano po 15 Dlaczego w kodzie częstotliwość w zakresie to nie wiem max 50kHz, jak mam ustawić tą wartośc...
Pokaż swoje próby, schemat podłączenia. Na początek wystarczy obsługa millis(), timery sprzętowe można zostawić na coś wymagającego dużej precyzji, odliczenie 60s nie musi być wyliczane z dokładnością pojedynczych cykli zegara uC. Pisanie na prive to kiepski pomysł, jeśli moje rozumowanie jest błędne tutaj od razu ktoś to poprawi . Akurat w Arduino...
1 jest komenda załączenia ale nie ma komendy wyłączenia Jest. działą to tak: po odebraniu kodu KOD1 wykonywane jest [syntax=arduino] digitalWrite(11,LOW); //załączamy przekaźnik na wyjściu 11 timer1.start(); // uruchamiamy timer 1 [/syntax] timer1 zaczyna odliczać czas ustawiony w [syntax=arduino] Ticker timer1(futimer1, 1000,2); //(funkcja wywoływana,czas...
Nie widzę nic śmiesznego w "zestrojeniu". Wcześniej realizowałem kod w oparciu o delay(), i jak chciałem interwał jednosekundowy to okazało się, przy wartości delay(1000) timer opóźniał się, dopiero przy delay(765) pracował synchronicznie z zegarem komputera (do wiadomości kolegi Jankowskiego) :) I w ten sposób błąd koncepcyjny polegający na użyciu...
Yyyy Atmega (surowa) czy Arduino?
Oczywiście że tak jaka jest polaryzacja wyjscia PWM decydujesz w konfiguracji timera. Co prawda nie wiem jak to zrobić w bibliotekach timera w Arduino ale w C na rejestrach zajmie to kilka linijek.
Jeśli na zewnętrznym kwarcu np. 16MHz miałoby być dokładniej to w takim razie na Arduino powinno to działać dokładnie bo tam takowy kwarc jest użyty. Zatem jeśli użyję funkcji timera na Arduino to jak piszesz powinno wyjść dokładne minutowe taktowanie?
Sygnał z tacho wentylatora należy podać na wejście Input Capture MCU, ustawić timer i zbierać momenty w których następuje zmiana stanu sygnału tacho. To trzeba przeliczyć na okres, a z tego masz wprost częstotliwość. Często trzeba ją podzielić przez dwa, jako, że najczęściej masz dwa impulsy z tacho na obrót. Inna możliwość - to podać na wejście CLK...
A ile czasu może trwać obsługa którego przerwania? Jeśli czas obsługi przerwania do synchronizacji fazy może być porównywalny z okresem timera, to może ono powodować gubienie przerwań timera. A może da się użyć jakiegoś timera 16-bitowego do wykrywania gubienia przerwań timera? Poza tym, mam nadzieję, że timer działa samodzielnie jakimś w trybie cyklicznym,...
Wygląda na to, że funkcja delay() korzysta w jakiś sposób z przerwań. Spróbuj wywalić w moim kodzie cli(); z funkcji timer_stop() i powinno ruszyć. edit: Tutaj więcej o timerach https://arduino-info.wikispaces.com/Time...
Jeśli użytkownik programujący w Arduino mikrokontroler AVR zada pytanie o timer, to temat ma być w Arduino, czy AVR? Innymi słowy wskaż dokładne zasady klasyfikowania tematów w zależności od jego treści.
Nie timery chodzą dokładnie tak jak je ustawiles, a nie jak chcą. Jakiś glitch w oscyloskopie
W attiny85 (bez "a") brak 16 bitowego timera
Timery rozwiązały problem ;) Dzięki wielkie !
Obsługa WS2812 na AVR nie może działać przy aktywnych przerwaniach z jakiegokolwiek źródła. Obsługa DMX korzysta z przerwania UART i masz jeszcze przerwanie timera. Proste? Zmień mikrokontroler.... Z ATmega WS2812 DOBRZE nie popędzisz.
A czy można „migać” jedną diodą i równocześnie robić sekwencje na pozostałych 3 w At13A? Początkujący uczą się na zasadzie zaświeć, zrób opóźnienie, zaświeć następną, prosta metoda ale możesz zrobić tylko jedną rzecz na raz, mimo że mikrokontroler wykonuje miliony instrukcji na sekundę, w zasadzie żadnego użytecznego programu tak nie napiszesz. Trzeba...
A może spróbować coś bardziej wysokopoziomowego? https://techtutorialsx.com/2017/10/07/es...
Są gotowe timery https://allegro.pl/oferta/programator-wl... też.
W Arduino na dzień dobry odpalany jest timer pomiaru czasu z przerwaniem co ok. 1ms
zdania doprowadzają do jedynej IMO słusznej konkluzji w tym wypadku: Arduino. Arduino to ślepa uliczka. W mojej ocenie, Arduino traktuje uC jak Z-8 (CPU + GPIO) czy 8051 gdzie ze sprzętu to głównie proste timery i UART. ZERO wykorzystania sprzętu! Bo co wspierają biblioteki Arduino? UART z malutkim buforem w RAM, I2C to samo. SPI bez bufora, bez przerwań....
Witam, Chciałbym zapytać o możliwości podłączenia do urządzeń AGD, typu pralka czy zmywarka jakiegoś układu opóźniającego start, lub układu z zegarem, który będzie wysyłał sygnał do startu urządzenia o określonej godzinie. Celem jest modyfikacja urządzenia w taki sposób aby można było uruchamiać je w okresie minimum zapotrzebowania energetycznego KSE,...
Modułu nie odczytuje się w kółko. Kiedy wykryje wyładowanie atmosferyczne to da znać na pinie INT. Z kalibracją sprawa wygląda tak że antena wraz z wbudowanym układem mają rezonowac na 500kHz. Żeby to dostroić w czipie jest kilkanaście kondensatorków które można podłączać programowo. Ustawia się moduł w taki tryb by na pinie INT wystawiał częstotliwość...
Hej, praktycznie każdy jaki znajdziesz, będzie się nadawał (nie licząć tych, które się nie nadają). Potrzebujesz 16 bitowego timera i kilku pwm, które znajdziesz w tanim attiny. Nie używałem arduino i wybrałbym napisanie tego w C. Płytkę którą opisałeś też zaprogramujesz w C.
Zgadza się, ale autor miał już problem z ogólnym działaniem programu. Wybór delay, millis, czy przerwania timera, to raczej szczegóły. Kod z #6 zadziała tak samo, ale łatwiej do niego dojść. Chyba. Pozdrawiam.
Witam wszystkich! Zastanawiam się nad zamianą szamba na oczyszczalnię, ale im bardziej się zagłębiam w ten temat tym bardziej okazuje się że płacimy za odchody jak za złoto. Dlaczego w pewnym momencie za baniak z rurkami (oczyszczalnia drenażowa) kosztujący 3000zł, zaczęliśmy płacić 10000zł (wszelkie biologiczne oczyszczalnie przepływowe i inne), kiedy...
Wystarczy wpisać w google "arduino code timer countdown" i znajdziesz nawet filmy na Youtube z tutorialem, oczywiście niekoniecznie z użyciem liquidcrystal, zwykle led segmentowe i przyciski.
Co jest złego w dawaniu po 1, 2 stopnie po bardzo małej przerwie? Nic. Zło tkwi w tym że używasz do tego funkcji delay() a sprzętowe timery się nudzą :) .
Jesteś jak prawdziwy żołnierz," odporny na wiedze trudny do......." Dlaczego kilkanaście razy powtarzasz Dodano po 1 Zaparłeś się na rzeźbę: Dodano po 2 Co do przerwań od timera, poczytaj https://playground.arduino.cc/Code/Timer
To jest o wielozadaniowości i świeceniu diodami, a nie wysyłaniu SMS: https://forbot.pl/blog/kurs-arduino-ii-w... TIMER: https://playground.arduino.cc/Code/Timer wielozadaniowość: https://techniczny.wordpress.com/2012/04... A ja chcę tylko wiedzieć jak wprowadzić komendę <wyslij...
usuń delay(1000); z sensors.requestTemperatures(); i wykonaj opóźnienie na timerach
Zmianę wartości PWM powinna byc realizowana w przerwaniu od timera.
Otwórz sobie pdfa od procesora zajrzyj w sekcje Timer2, poczytaj, przejdź do opisu rejestrów i poustawiaj jak uważasz. Ogólnie dla liczników wybierasz prescaler czyli podział między zegarem (16Mhz dla Arduino) a wejściem licznika. Timer2 jest 8bitowy ma 256 wartości, więc masz kolejny podział. Jak potrzebujesz precyzyjnie to są tryby gdzie możesz zrobić...
Jak w panelu zrobić zamianę 8 obiektów checkbox (czyli binarne pole 0 lub 1) na liczbę binarną np: 11111111 czyli 255 w hex FF i wysłać to do arduino? Gdy w timerze tworzę równanie nie zlicza mi to prawidłowo: va0.val=c0.val*1+c1.val*2+c2.val*4+c3.va... //(gdzie c0.val jest albo 0 albo 1) n0.val=va0.val
Szybko Ci poszło przeczytanie wszystkich artykułów na mikrokontrolery.blogspot. W każdym programie jakoś musisz obsługiwać upływ czasu, na pierwszej lekcji do zamigania led użyłeś delay, do paru innych prostych programów to też wystarczy, ale generalnie należy to robić na timerze. Jest to tak oczywiste, że w Arduino zrobili do tego gotowe funkcje, w...
Z delayami tego na pewno nie zrobisz, musisz nauczyć się zarządzać czasem - millis, timery sprzętowe, gotowe biblioteki (timerOne), millis opisane jest w kursie: https://forbot.pl/blog//kurs-arduino-pod... i raczej nie powinieneś zaczynać od jego końca. Coś takiego jak maszyna stanów, switch-case też nie zaszkodzi...
Witam Jestem poczatkujacy jezeli chodzi o programowanie w arduino dlatego prosze o wyrozumialosc. Tworze komputer pokladowy ktory bedzie pokazywal biezace parametry silnika. Przelaczam ekrany lcd za pomoca funkcji switch case. Na pierwszym ekranie chce aby wyswietlalo sie .... Potrzebujesz utworzyć procedurę zwaną „menu” , w której każdy nowy ekran...
Albo najlepiej zastosować zupełnie inną metodykę - piny podpiąć pod przerwania zewnętrzne (PCINT, INT + diody 1n4148 itp.) i skorzystać z jednego timera generującego podstawę czasu.
Potrzebujesz czegoś co nazywa się systemem operacyjnym, lub powinieneś zacząć realizować takie rzeczy na przerwaniach od timera i maszynach stanów.
Gratuluję wytrwałości :) Jest jeszcze jedna rzecz, którą będę chciał zrobić - dodać dodatkowy timer, żeby zmienna lesser_delay_counter (flaga przyjmująca 4 stany w zależności od tego co ma być wyświetlone na ekranie "czas, temperatura, cisnienie, hPa") była niezależna od timera wyznaczającego częstotliwość multipleksowania, Jako alternatywę proponuję...
[syntax=c]sensors.readTemperature[/synta... odczytuje temperaturę. Co wywołuje start konwersji? Robi to ta funkcja? A może inna? Podpowiedź. Konwersja dla DS18B20 to, zależnie od rozdzielczości, 100..700ms. Czas mozna zmierzyć na wiele sposób, oscyloskopem, rejestratorem logicznym, timerami.
Witam potrzebował bym zrobić atrapę bomby C4 z csgo do potrzeb asg i jak napisać program który po naciśnięciu fizycznego lub w telefonie przycisku włączy timer 60 sek i po chwili włączy diodę? Moim Arduino jest NodeMcu v3 to chyba nie jest problem? I jaki przycisk użyć czy taki co cały czas przełącza czy taki co raz klika?
Najlepiej by było użyć 16 bitowego timera (2 kanały), ale biblioteki arduino do tego zadania raczej odpadają.
Jeśli zbyt często nie przeliczasz tego czasu, i nie brakuje ci mocy obliczeniowej, to może być. Szczególnie że w arduino jest już działający timer.
Detekcja przejścia przez zero: Zamiast rezystora 4,7k można spokojnie wykorzystać wewnętrzne podciągnięcie w procesorze. http://obrazki.elektroda.pl/5882608000_1... Ja zwykle podłączam wyjście detektora do któregoś wejścia INT i wykorzystuję przerwanie do załadowania timera odpowiednią wartością i wyłączenia triaka. W przerwaniu z timera...
Hint: timer, przerwanie timera. drgania styków, denouncing Dodano po 1 http://mikrokontrolery.blogspot.co.uk/20...
(at)namok - nie masz racji - mnie się w 99% udawało ustawić rejestry, ale 90% z nich wymagało sprawdzenia czy coś nie gryzie się z bibliotekami Arduino (np. timery z funkcjami millis()). Niestety ale za cenę tego, że nie oglądamy "co jest pod maską" dostajemy gorsze możliwości konfiguracji sprzętu, który mamy.
Witam Serdecznie. Przejdę do razu do sprawy... Mój problem polega na tym, że stworzyłem prosty timer(coś jak timer do jajek), teraz tworzę możliwość ręcznego ustawiania czasu, a nie w kodzie. Niby wszystko bangla jak powinno... Tylko problem polega na tym, że mam 2 przyciski, jeden ma dodawać mi minuty (tak jak już zrobiłem), a drugi ma być takim "zatwierdzeniem",...
Migaj diodą w przerwaniu timera, a nie w pętli z delay().
... Przy czym pierwsza z tych metod działa poprawnie w przerwaniu timera, a druga nie działa wcale... ;)
Oczywiście, przeczytaj o module ICP timera. W momencie wystąpienia zdarzenia, licznik timera jest przepisywany do rejestrów ICP. Rozdzielczość jest zależna od częstotliwości taktowania timera. Twoje rozwiązanie nie może prawidłowo działać, bo czas liczysz w pętli, a ta z kolei ma różny czas wykonywania (zakładam, że korzystasz z przerwań).
Nad takim też myślałem ale to nie jest to. Chodzi o to, że pin wejścia będzie podpięty pod linie 5V w komputerze i jeśli będzie wykryty sygnał (to 5V) to wtedy na pinie przykładowo 13 będzie przez określony czas stan wysoki. Przez określony czas tylko. A jeśli stan tej lini 5V zmieni się na zero to wtedy znów na ten określony czas będzie stan wysoki...
A tak z ciekawości bazujesz na doświadczeniu swoim, ze 50us może "zabić" program czy na dokumentacji ESP ? Bazuję na swoim doświadczeniu i dokumentacji ESP-IDF. Zbyt krótkie czasu wywołania esp_timera mogą negatywnie wpłynąć na krytyczne mechanizmy, takie jak obsługa stosu TCP/IP, SPI, I2C czy UART. Dodatkowo, takie praktyki są odradzane w kontekście...
r"]Myślałem że zmieniam płytkę, wgrywam nowy bootloader i działa tak samo jak inne arduino. Wykonywałem procedurę z tego linku https://geektimes.ru/post/277928/ Będzie "działać tak samo" o ile ograniczysz się do kodu arduino bez odwoływania się bezpośrednio do sprzętu specyficznego dla danego MCU (jak chociażby timery w podanym przykładzie). Swoją...
Zmodyfikuj program tak, by odebrany nowy kąt serwa nie podawał na PWM od razu tylko stopniowo od aktualnej wartości począwszy. Możesz do tego wykorzystać jakiś timer, który będzie co inicjował przerwania co np. 200ms i podawał serwom nowe położenia (jeśli mają być podane).
Dobry początek. Czy dioda załączona czujnikiem nigdy się nie wyłączy sama? Teraz wyobrać sobie, że w przerwaniu timera, np. 100 razy na sekundę, sprawdzasz stan czujnika i przycisku i odpowiednio zapalasz/gasisz diodę i zmieniasz stan automatu. Proste?
W czym dokładniej masz problem? Najlepiej przy wciśnięciu przycisku zliczaj jakoś czas jak długo był wciśnięty, jeśli czas przekroczy jakąś tam wartość wykonaj czynności dla długiego przyciśnięcia. Najlepiej jakbyś to wykonywał w jakimś timerze który wykonuje się np. co 10ms, wtedy odpadnie Ci trochę roboty i uprości sprawę z debouncingiem.
(at)poorchava - a co polecasz 13latkowi, który zaczyna eksperymentować z uC? BASCOM w tym momencie daje najwięcej oczekując najmniej. Oczekując najmniej od programisty oczywiście. Od MCU wymaga całkiem sporo, jako (moim zdaniem) dość ciężki do zoptymalizowania przez kompilator język. Niemniej można zrobić łatwo i przyjemnie dużo rzeczy bez potrzeby...
1. Do odmierzania czasu wykorzystaj, tak jak w arduino, timer pracujący niezależnie od programu. Najlepiej tryb CTC z odpowiednio dobranym preskalerem i będziesz miał przerwanie co 1us, w którym będziesz zwiększał zmienną 2. jeśli chcesz większe odcinki czasu to istnieje typ uint64_t, który może przechowywać wartości aż do 18446744073709551615, czyli...
To po prostu fototranzystor odbiorczy+dodatkowy, i sygnał z takiego "odbiornika" (np. post #29) wrzucasz na Timer skonfigurowany podobnie jak miernik częstotliwości. Ciebie interesuje jedynie, czy jest odbierany sygnał czy nie, czyli z odpowiednim bramkowaniem, jeśli nastąpi przepełnienie Timera to sygnał jest odbierany, jeśli nie nastąpiło to brak...
integra timery xmega timery atmega8 timery
renault megane zasilania licznika akumulator opary tokarka frezarka
uziemienie basenu łącznik krzywkowy podłączyć
Najlepsze wkrętaki JIS do obiektywów Canon Regeneracja ładowarki Makita DC18RA - naprawa i diagnostyka