割り込み / 一定の時間が経過したら何かをする / Timeoutクラス

参考: Mbed OS Reference | TimeoutBase Class Reference

Mbed Studioはバージョン1.2.1になった。

PA_10に接続したLEDでLチカをしていて、5秒経過したらwhile()を抜ける。

#include "mbed.h"
Timeout timeout;
DigitalOut led(PA_10);

uint8_t on = 1;
void at_timeout(){
    on = 0;
}

int main(){
    timeout.attach(&at_timeout, 5s); // n秒経過したらat_timeout()函数をコールする。
    while(on){
        led = !led;
        ThisThread::sleep_for(250ms);
    }
    return 0;
}