Pytania otagowane jako interrupt


2
Ile pinów przerwań może obsłużyć Uno?
Patrzę na użycie 7-kanałowego odbiornika RC z Arduino Uno R3. W dokumentacji są wzmianki o maksymalnie 2 pinach przerwań, podczas gdy na niektórych innych blogach widziałem wzmianki o użyciu do 20 pinów jako przerwań, z biblioteką PinChangeInt. Ile przerwań Arduino może obsługiwać natywnie? Czy różni się to od liczby obsługiwanych …

2
Jak precyzyjnie mogę uzyskać Arduino za pomocą enkoderów obrotowych?
Silniki krokowe są często drogie dla dużego silnika. Jednak dzięki mocnemu, standardowemu silnikowi prądu stałego i enkoderowi obrotowemu można „symulować” silnik krokowy. Jak dokładne są kodery obrotowe z Arduino tylko z podstawową pętlą i niewiele innych kodów? Czy będzie to „brakowało impulsu” i nie będzie często rejestrować wystarczającej rotacji? Jak …

3
Używanie millis () i micros () w procedurze przerwań
Dokumentacja attachInterrupt()mówi: ... millis()liczy się przerwanie, więc nigdy nie zwiększy się w ISR. Ponieważ delay()wymaga przerwania do pracy, nie zadziała, jeśli zostanie wywołany wewnątrz ISR. micros()działa początkowo, ale zacznie zachowywać się nieregularnie po 1-2 ms. ... Czym się micros()różni millis()(z wyjątkiem oczywiście ich precyzji)? Czy powyższe ostrzeżenie oznacza, że ​​korzystanie …

2
Czy przypisania wskaźników funkcji są atomowe w Arduino?
Poniższe fragmenty kodu źródłowego biblioteki TimerOne : // TimerOne.h: void (*isrCallback)(); // TimerOne.cpp: ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { Timer1.isrCallback(); } // TimerOne.cpp: void TimerOne::attachInterrupt(void (*isr)(), long microseconds) { if(microseconds > 0) setPeriod(microseconds); isrCallback = isr; // register the user's callback …


1
Zliczanie impulsów z przerwaniem
Próbowałem policzyć impulsy z fali prostokątnej 12 500 Hz, aby wyzwolić wyjście. Oto kod, który mam do tej pory. Po zresetowaniu Arduino drukuje 315 do portu szeregowego na próbce 25 ms. 315 x 40 = 12600. Wydaje mi się, że działa idealnie. Moim jedynym problemem jest to, że zwraca ten …
10 interrupt 

1
Czy zmienność jest potrzebna, gdy zmienna jest dostępna z> 1 ISR, ale nie jest dzielona poza ISR?
Jest wyraźnie udokumentowane, że gdy dane globalne są udostępniane ISR i programowi głównemu, dane muszą zostać zadeklarowane volatilew celu zagwarantowania widoczności pamięci (i to wystarcza tylko dla danych 1-bajtowych; cokolwiek większego wymaga specjalnych ustaleń, aby zagwarantować również atomowość) . Tutaj mamy dobre zasady: Zmienne używane tylko poza ISR nie powinny …
9 interrupt  timers  isr 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.