demostration for TimeoutAbs

Dependencies:   TimeoutAbs

Demo absolute timeout.

Event occurs at absolute time instead of relative to when attach() called. Random delay is added to show independence from when attach() is called.

main.cpp

Committer:
Wayne Roberts
Date:
2018-11-26
Revision:
0:3985faffb331

File content as of revision 0:3985faffb331:

#include "mbed.h"
#include "LowPowerTimeoutAbs.h"

volatile bool ev;
Timer t;

LowPowerTimeoutAbs tabs;

void my_callback()
{
    ev = true;
}

us_timestamp_t tabs_started_at;

int main()
{
    unsigned prev;
    t.start();
	tabs_started_at = tabs.read_us();
    tabs.attach_us(my_callback, tabs_started_at + 100000);
    prev = t.read_us();
	printf("tabs_started_at:%llu prev:%u\r\n", tabs_started_at, prev);
    for (;;) {
        unsigned now;
        if (ev) {
            unsigned late;
            now = t.read_us();
			tabs_started_at += 1000000;
            late = rand() % 200000;
            printf("time %u\t", now - prev);
            fflush(stdout);
            wait_us(late);
            printf("late:%u\r\n", late);
            tabs.attach_us(my_callback, tabs_started_at);
            prev = now;
            ev = false;
        }
    }
}