clockCyclesPerMicrosecond()/ clockCyclesToMicroseconds()/ microsecondsToClockCycles()

概要

クロック数と時間(マイクロ秒)の関係を相互変換します。

ソースコード

clockCyclesPerMicrosecond()/clockCyclesToMicroseconds()/microsecondsToClockCycles()は、hardware/arduino/avr/cores/arduino/Arduino.h に定義されています。以下に全ソースコードを示します。

1
2
3
#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() )
#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() )

clockCyclesPerMicrosecond()は、1マイクロ秒あたりのクロック数です。F_CPUは、(おそらく)hardware/arduino/boards.txtで定義されているuno.build.f_cpuを利用しています。Arduino Unoでは、16000000(=16MHz)です。1秒は1000*1000マイクロ秒なので、F_CPUを1000000で割った16となります。

clockCyclesToMicroseconds()は、指定したクロック数をマイクロ秒に変換します。与えたクロック数を1マイクロ秒あたりのクロック数で割ることで得られます。

microsecondsToClockCycles()は、指定したマイクロ秒をクロック数に変換します。与えたマイクロ秒に1マイクロ秒当たりのクロック数を掛けることで得られます。

バージョン

Arduino AVR Boards 1.8.6

最終更新日

March 21, 2023

inserted by FC2 system