Pytania otagowane jako isr


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
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.