diff --git a/static_scheduling/reset_device.cpp b/static_scheduling/reset_device.cpp index 6447f59..bda773c 100644 --- a/static_scheduling/reset_device.cpp +++ b/static_scheduling/reset_device.cpp @@ -1,14 +1,14 @@ /**************************************************************************** -* @file pedal_device.cpp +* @file reset_device.cpp * @author RĂ©mi Heredero * @author Yann Sierro * -* @brief Pedal Device implementation (static scheduling) +* @brief Reset Device implementation (static scheduling) * @date 2024-11-12 * @version 0.1.0 ****************************************************************************/ -#include "reset_device.h" +#include "reset_device.hpp" // from disco_h747i/wrappers #include @@ -30,20 +30,24 @@ namespace static_scheduling { static constexpr std::chrono::microseconds kTaskRunTime = 1000000us; - ResetDevice::ResetDevice(Timer& timer) : timer_(timer) {} + ResetDevice::ResetDevice(Timer& timer) : _timer(timer), _resetButton(PUSH_BUTTON) { + _resetButton.rise(callback(this, &ResetDevice::onRise)); + } - std::chrono::milliseconds ResetDevice::checkReset() { + bool ResetDevice::checkReset() { std::chrono::microseconds initialTime = _timer.elapsed_time(); std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); // we bound the change to one increment/decrement per call bool isPressed = false; while (elapsedTime < kTaskRunTime) { - if(!hasChanged) { + if(!isPressed) { isPressed = _resetButton.read() == kPolarityPressed; } elapsedTime = _timer.elapsed_time() - initialTime; } + return isPressed; + } std::chrono::microseconds ResetDevice::getPressTime() {