Skip to content

auntan/FreeRTOSAsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Header only, zero heap allocation future/promise library built on top of FreeRTOSHelpers

Usage

#include <include/freertosasync.hpp>

int main() {
    FreeRTOSAsync::setImmediate([]() {
        printf("called immediate\n");
        return FreeRTOSAsync::setTimeout(1000, []() {
            printf("called after 1000 ms\n");
            return FreeRTOSAsync::Future();
        });
    }).then([]() {
        printf("called immediate\n");
        return FreeRTOSAsync::setTimeout(1000, []() {
            printf("called after 1000 ms\n");
            return FreeRTOSAsync::Future();
        });
    }).then([]() {
        printf("called immediate\n");
        return FreeRTOSAsync::Future();
    }).then([]() {
        printf("end\n");
        return FreeRTOSAsync::Future();
    });
    
    printf("begin\n");
            
    // FreeRTOS scheduler must be run
    vTaskStartScheduler();
}

Output:

[00.000] begin
[00.000] called immediate
[01.000] called after 1000 ms
[01.000] called immediate
[02.000] called after 1000 ms
[02.000] called immediate
[02.000] end

About

Header only, zero heap allocation future/promise library built on top of FreeRTOSHelpers.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages