フリーランタイマー(カウンター)を使った時間計測
よくフリーランカウンターを用いて時間計測をするが、カウンターが一周したことを判定したくなるが、符号なしの場合、単純に引き算してよいとのこと。
現在時間-スタート時間
計算しやすいので8ビットで確認する。
以下、計測開始時間が0xffで現在時間が0x01だと経過時間は2になることがわかる。
計算式 | ||||||||||||
現在時間 ー スタート時間 = ラップタイム | ||||||||||||
1周しないときの計算 | 9 - 7 = 2 | |||||||||||
BO | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||
現在時間 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0x09 | ||
スタート時間 | ー | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0x07 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0x02 | |||
1周したときの計算 | 1 - 255 = 2 | |||||||||||
BO | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | ||||
現在時間 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0x01 | ||
スタート時間 | ー | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0xff | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||
BO:ボローフラグ | ||||||||||||
経過時間 | ||||||||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 |