Browse Source

AP_HAL: added begin_atomic and end_atomic to scheduler

mission-4.1.18
Pat Hickey 12 years ago committed by Andrew Tridgell
parent
commit
c9541d3b00
  1. 3
      libraries/AP_HAL/Scheduler.h
  2. 8
      libraries/AP_HAL_AVR/Scheduler.cpp
  3. 2
      libraries/AP_HAL_AVR/Scheduler.h

3
libraries/AP_HAL/Scheduler.h

@ -22,6 +22,9 @@ public: @@ -22,6 +22,9 @@ public:
uint32_t period_us) = 0;
virtual void suspend_timer_procs() = 0;
virtual void resume_timer_procs() = 0;
virtual void begin_atomic() = 0;
virtual void end_atomic() = 0;
};
#endif // __AP_HAL_SCHEDULER_H__

8
libraries/AP_HAL_AVR/Scheduler.cpp

@ -321,3 +321,11 @@ void ArduinoScheduler::_timer_event() { @@ -321,3 +321,11 @@ void ArduinoScheduler::_timer_event() {
_in_timer_proc = false;
}
void ArduinoScheduler::begin_atomic() {
cli();
}
void ArduinoScheduler::end_atomic() {
sei();
}

2
libraries/AP_HAL_AVR/Scheduler.h

@ -25,6 +25,8 @@ public: @@ -25,6 +25,8 @@ public:
void register_timer_failsafe(AP_HAL::TimedProc, uint32_t period_us);
void suspend_timer_procs();
void resume_timer_procs();
void begin_atomic();
void end_atomic();
private:
/* Implementation specific methods: */

Loading…
Cancel
Save