Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
clockCyclesPerMicrosecond()/clockCyclesToMicroseconds()/microsecondsToClockCycles()

clockCyclesPerMicrosecond()/clockCyclesToMicroseconds()/microsecondsToClockCycles()

概要

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

ソースコード

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

#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 1.8.2



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2016 garretlab all rights reserved.
inserted by FC2 system