■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); }
■構文
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の数字
■戻り値
有りません。
■補足
この関数は新しいプロジェクトでは使用しない様に推奨されています。