NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(SPI: setClockDivider関数の使い方)

■SPI: setClockDivider関数
 SPI: setClockDivider関数は、SPISettings関数とSPI:beginTransaction関数にSPIパラメータとして、システムクロックに対するSPIクロック分周器を設定します。
 AVRベースのボードでは、使用可能な分割値は2,4,8,16,32,64,128です。
 デフォルト設定の「SPI_CLOCK_DIV4」では、SPIクロックをシステムクロックの1/4に設定します。(16MHzのボードでは4Mhz)
 また、Arduino Dueによるシステムクロックは1〜255の値で割ることができます。デフォルト値は21で、他のArduinoボードのようにクロックを4MHzに設定します。

■使用例
 ArduinoIDEで使用するSPI: setClockDivider関数の使い方は以下の通りです。
 試しにこのプログラムをArduinoUNOで実行すると、最初にSPI.begin関数でSPI通信を初期化し、SPI: setClockDivider関数でSPIクロックをシステムクロックの1/8に設定します。
 次にSPI.transfer関数で「0x55」を出力し、SPI.transfer関数で「0xff」SPIバスでデータを取得します。

#include <SPI.h>
void setup() {
   SPI.begin();
   SPI.setClockDivider(SPI_CLOCK_DIV8);
}

void loop() {
   //write
   SPI.transfer(0x55);
   //read
   uint8_t data = SPI.transfer(0xff);
}
イメージ 1
図1:プログラム例

■構文
 SPI.setClockDivider(divider)

■パラメータ
 ∟AVRボード
  ∟divider
   ∟SPI_CLOCK_DIV2
   ∟SPI_CLOCK_DIV4
   ∟SPI_CLOCK_DIV8
   ∟SPI_CLOCK_DIV16
   ∟SPI_CLOCK_DIV32
   ∟SPI_CLOCK_DIV64
   ∟SPI_CLOCK_DIV128
 ∟Arduino Due
  ∟slaveSelectPin: スレーブデバイスSSピン
  ∟divider : 1〜255の数字

■戻り値
 有りません。

■補足
 この関数は新しいプロジェクトでは使用しない様に推奨されています。

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る