理想のRTOSを自作する (5)

【タイマー管理クラス】

このタイマー管理クラスはタイマー0の比較一致割り込みにより動作する。

arduinoなどではタイマー0のOC0A/OC0B出力ピンをPWMとして使用できるが、PWMとして使うとタイマー0の設定が書き換わり、このタイマー管理クラスが誤動作するので注意してほしい。

代表的なボードのPWMとして使ってはいけないピンは次の通り。

正確なシステム時刻を管理するため比較一致割り込みの一つを使い独自にシステム時刻カウンターを実装し、もう一つの比較一致割り込みはスリープやタイムアウトを管理するためのタイマーとして使用している。また、システム時刻の取得は割り込み処理内などの割り込み禁止状態からの呼び出しでも問題ないよう工夫している。

【概要】

※タイマー初期設定。内部用なので呼び出してはいけない。

arduino互換。システム起動後の経過時間をマイクロ秒で返す。

arduino互換。システム起動後の経過時間をミリ秒で返す。

arduino互換。指定ミリ秒の間、スリープする。

arduino互換。指定マイクロ秒の間、スリープする。

【ソース・コード】

【関連する投稿】
理想のRTOSを自作する (1)
理想のRTOSを自作する (2)
理想のRTOSを自作する (3)
理想のRTOSを自作する (4)
理想のRTOSを自作する (5)
理想のRTOSを自作する (6)
理想のRTOSを自作する (7)
理想のRTOSを自作する (8)
理想のRTOSを自作する (9)
理想のRTOSを自作する (10)
理想のRTOSを自作する (11)