#ifndef __AP_HAL_AVR_SEMAPHORES_H__ #define __AP_HAL_AVR_SEMAPHORES_H__ #include <AP_HAL.h> #include <AP_HAL_AVR_Namespace.h> class AP_HAL_AVR::AVRSemaphore : public AP_HAL::Semaphore { public: AVRSemaphore(); bool give(); bool take(uint32_t timeout_ms); bool take_nonblocking(); protected: bool _take_from_mainloop(uint32_t timeout_ms); bool _take_nonblocking(); volatile bool _taken; }; #endif // __AP_HAL_AVR_SEMAPHORES_H__