2016-11-19 7 views
1

最近、私はC++とArduinoコーディングを始めました。私はArduino UNO R3、Arduino Mini、Arduino互換Teensy 3.2といった異なるボードを持っています。C++のArduinoハードウェア仕様を読む

特定のピンを自動的に選択するようにプログラムを作成したいと考えています。 EEPROMライブラリ(ライブラリが適切な用語であるかどうかはわかりませんが、私が新しいC++に言われたように)では、各ボードのEEPROMサイズを取得できます。ボードに入力ピンと出力ピンとして使用できるデジタル/アナログピンの数が他のデータを取得する方法はありますか?

答えて

2

デジタルピンの数は、NUM_DIGITAL_PINSマクロで定義されています。

アナログ入力ピンの数は、NUM_ANALOG_INPUTSマクロで定義されています。

マクロは(OPの要求によって追加)に配置されている:

宇野https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/standard/pins_arduino.h#L28-L29

#define NUM_DIGITAL_PINS   20 
#define NUM_ANALOG_INPUTS 6 

ミニを:https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/standard/pins_arduino.h#L28

#define NUM_DIGITAL_PINS   20 

https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/eightanaloginputs/pins_arduino.h#L25

#include "../standard/pins_arduino.h" 
#undef NUM_ANALOG_INPUTS 
#define NUM_ANALOG_INPUTS 8 

Teensy 3.xのhttps://github.com/PaulStoffregen/cores/blob/1.31/teensy3/core_pins.h#L97-L127

#if defined(__MK20DX128__) 

#define CORE_NUM_TOTAL_PINS  34 
#define CORE_NUM_DIGITAL  34 
#define CORE_NUM_INTERRUPT  34 
#define CORE_NUM_ANALOG   14 
#define CORE_NUM_PWM   10 
#elif defined(__MK20DX256__) 
#define CORE_NUM_TOTAL_PINS  34 
#define CORE_NUM_DIGITAL  34 
#define CORE_NUM_INTERRUPT  34 
#define CORE_NUM_ANALOG   21 
#define CORE_NUM_PWM   12 
#elif defined(__MKL26Z64__) 
#define CORE_NUM_TOTAL_PINS  27 
#define CORE_NUM_DIGITAL  27 
#define CORE_NUM_INTERRUPT  24 // really only 18, but 6 "holes" 
#define CORE_NUM_ANALOG   13 
#define CORE_NUM_PWM   10 
#elif defined(__MK64FX512__) 
#define CORE_NUM_TOTAL_PINS  64 
#define CORE_NUM_DIGITAL  64 
#define CORE_NUM_INTERRUPT  64 
#define CORE_NUM_ANALOG   27 
#define CORE_NUM_PWM   20 
#elif defined(__MK66FX1M0__) 
#define CORE_NUM_TOTAL_PINS  64 
#define CORE_NUM_DIGITAL  64 
#define CORE_NUM_INTERRUPT  64 
#define CORE_NUM_ANALOG   25 
#define CORE_NUM_PWM   22 
#endif 

https://github.com/PaulStoffregen/cores/blob/1.31/teensy3/pins_arduino.h#L157-L158

#define NUM_DIGITAL_PINS CORE_NUM_DIGITAL 
#define NUM_ANALOG_INPUTS CORE_NUM_ANALOG 

他のボードと同様の場所に設置されます。そのボードのboards.txtに設定されているbuild.variantの値を確認してから、ボードのプラットフォームのvariantsフォルダの同じ名前のフォルダに移動するだけです。

これらのバリアントファイルを調べると、他の便利な機能が見つかるかもしれません。

+0

興味深いことに、私はこれのためのソースを見つけることができないようです。どのようにあなたはそれに来ましたか?私はあなたに最高の答えを提供しますが、あなたがこれを見つけた場所を更新することができれば本当にうれしいでしょう。どうもありがとう! :) – KoalaGangsta

+0

私はそれを私の答えに加えようとしていたが、それはボードによって少し違っていたので、私はそれを取り除いた。 – per1234

+0

お世話になりました! :) – KoalaGangsta