0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

組込み+RTOS > C > 70秒待ち > 46秒で処理が終わる > 実装ミス

Last updated at Posted at 2018-01-31
動作環境
とある組込みシステム + RTOS

とある組込みシステムで70秒のカウントダウンを行っていた。
カウントダウンが終わるのは46秒。

何故か。

理由

  • 1000ミリ秒待機処理に加えて300ミリ秒のシリアル受信待ち
    • 1.3倍
  • カウントダウンする関数を用意
  • その関数を2回呼んでいた
    • 1/2倍

70秒 / 2 * 1.3 = 45.5秒

備考

関数内でカウントダウンやカウントアップする処理をしている場合、その処理がN秒に1回などの指定通りにコールされるように実装しないといけない。

別の案としては、クロックを使った経過時間の判断にする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?