Posted inマイコン
小ネタ:フラグを8秒間保持
あるイベントが起きたら、フラグを最後のイベントから一定時間だけ(たとえば8秒)立てておきたいとき、下のようなコードだとちょっとだめです
----------
volatile uint8_t flag;
ISR(TIMER0_OVF_vect) // 割り込みは8秒おき
{
flag = 0;
}
int main()
{
while (1) {
if (check_event()) {
flag = 1;
}
}
}
----------
これだと、割り込みハンドラでクリアするフラグが、8秒前に立ったものか1秒前に立ったものか区別つかないからです。
