#ifndef __AP_HAL_AVR_SEMAPHORES_H__ #define __AP_HAL_AVR_SEMAPHORES_H__ #include #include 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__