Jump to content

    

timer task

Здравствуйте.

Скажите, ни у кого не возникало задачи сделать софт-таймеры?

Уже не первый раз делаю что-то подобное в очередном проекте, хочется сделать унифицировано.

 

Я это вижу по аналогии с FreeRTOS: отдельная задача, которая хранит в себе массив из n-цати структур. Структура состоит из таймера и коллбэка - по истечению таймера (один раз или периодически) вызывается коллбэк.

Заполнение этого списка, перенастройка таймеров и т.д. - динамически, из остальных задач.

По сравнению с FreeRTOS надо подумать и применить шаблонную магию, чтобы коллбэком мог быть метод произвольного класса.

 

PS в mbed используют другой вариант API. Выглядит симпатичнее, но не совсем понятно, как оно внутри устроено: https://github.com/ARMmbed/mbed-os/blob/c12b433026beae5b3b769c27941bc6d7fe5d4b27/rtos/RtosTimer.h#L58

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now