背景
nordicのnRF51822というICのプログラムを作っていると、利用するボード情報によってArduinoで呼び出すデジタルピンが違うという場面に遭遇しました。結果としてvariant.cppというファイルを見るとピン配置が分かりました。
備忘録として、具体的なファイルの場所と読み方を共有します。
例として比較するもの
arduino-nrf5のredBearLabBleNanoとbbcmicrobitを比較します。どちらもnordicのnRF51822というICが使われていて、このICにはRAMが32KB版と16KB版があり、前者が32KB RAM、後者が16KB RAMという違いがあります。
目的: P0ピンを制御する
nRF51822のP0ピンを呼び出す方法を調べます。
利用したモジュールはnRF51822を搭載したMDBT40というモジュールです。
データシート(PDF)のピンアウト画像で言うとP0はここです。
Variantファイルの見方
Variantファイルはcppファイルとヘッダファイルがあり、前者にマイコンのピンを格納する配列が定義され、後者でその配列を参照するマクロ(A0など)が定義されます。variant.cppの一部
variant.hの一部
cppファイルを見ればコメントでマクロの情報が書かれていることが多いので、cppファイルだけ見れば必要な情報を知れると思います。
BleNanoの場合はA0もしくは8でP1を呼べる
BleNanoのvariant.cppを見てみると、A0もしくは8でP1を呼べることが分かります。ということで、ボード情報としてBleNanoを利用する場合は、このようなプログラムを書けばP1ピンを制御できます。
#define PIN_P1 8
void setup() {
pinMode(PIN_P1, OUTPUT);
}
microbitの場合はA2もしくは2でP1を呼べる
micribotのvariant.cppを見てみると、A2もしくは2でP1を呼べることが分かります。ということで、ボード情報としてmicrobitを利用する場合は、このようなプログラムを書けばP1ピンを制御できます。
#define PIN_P1 2
void setup() {
pinMode(PIN_P1, OUTPUT);
}
0 件のコメント :
コメントを投稿