Files
lab-rv32i-freertos-schedule…/include/freertos/ticks.hpp
T

61 lines
1.0 KiB
C++

#ifndef FREERTOS_CPP_TICKS_HPP
#define FREERTOS_CPP_TICKS_HPP
extern "C"
{
#include "FreeRTOS.h"
#include "task.h"
}
namespace freertos
{
class Ticks final
{
public:
explicit constexpr Ticks( TickType_t value ) noexcept : value_ { value }
{
}
constexpr TickType_t count() const noexcept
{
return value_;
}
private:
TickType_t value_;
};
class TickPoint final
{
public:
explicit constexpr TickPoint( TickType_t value ) noexcept : value_ { value }
{
}
static TickPoint now() noexcept
{
return TickPoint { xTaskGetTickCount() };
}
constexpr TickType_t count() const noexcept
{
return value_;
}
friend constexpr Ticks operator-( TickPoint later,
TickPoint earlier ) noexcept
{
return Ticks { static_cast< TickType_t >( later.value_ -
earlier.value_ ) };
}
private:
TickType_t value_;
};
} // namespace freertos
#endif