tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
task.hpp File Reference

Go to the source code of this file.

Classes

struct  forever
 Runs the task loop forever. More...
 
struct  never
 Runs the task loop 0 times. More...
 
struct  times< Count >
 Runs the task loop Count times. More...
 

Namespaces

namespace  etl
 
namespace  etl::experimental
 
namespace  etl::experimental::freertos
 
namespace  etl::experimental::freertos::this_task
 

Typedefs

using once = times<1>
 Runs the task loop once.
 
using twice = times<2>
 Runs the task loop twice.
 

Functions

template<typename TaskType>
auto create_task (TaskType &task, char const *const name, uint16_t stack, UBaseType_t prio=0, TaskHandle_t *const handle=nullptr) -> void
 Create a rtos task. TaskType needs a void run() public method.
 
auto delete_task (TaskHandle_t task) -> void
 Delete a rtos task. If handle is nullptr, the current task will be deleted.
 
template<typename TaskType>
auto rtos_task (void *task) -> void
 Wrapper for an rtos task struct. Calls the run() member.
 
auto sleep_for (etl::uint32_t ticks) -> void
 Delay a task for a given number of ticks. The actual time that the task remains blocked depends on the tick rate.
 
auto sleep_until (etl::uint32_t &prev, etl::uint32_t increment) -> void
 Delay a task until a specified time. This function can be used by periodic tasks to ensure a constant execution frequency.
 
auto start_scheduler () -> void
 Start the RTOS, this function will never return and will schedule the tasks.
 
auto yield () -> void
 Request a context switch to another task.