arduinoIDEでファイル分割機能がある。
いろんな人の説明を見ると分割機能は、
分かれたファイルを単純に結合して、実行できる機能と説明があったので
私も始めは以下のような感じで分けてみた
Main.inc
#define VERSION 10000
// カメラ設定============================================================
// Pin definition for CAMERA_MODEL_ESP32S3_EYE
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 15
#define SIOD_GPIO_NUM 4
#define SIOC_GPIO_NUM 5
#define Y2_GPIO_NUM 11
#define Y3_GPIO_NUM 9
#define Y4_GPIO_NUM 8
#define Y5_GPIO_NUM 10
#define Y6_GPIO_NUM 12
#define Y7_GPIO_NUM 18
#define Y8_GPIO_NUM 17
#define Y9_GPIO_NUM 16
#define VSYNC_GPIO_NUM 6
#define HREF_GPIO_NUM 7
#define PCLK_GPIO_NUM 13
// Pin definition for SD MMC
#define SD_MMC_CMD 38 //Please do not modify it.
#define SD_MMC_CLK 39 //Please do not modify it.
#define SD_MMC_D0 40 //Please do not modify it.
// LoRa設定==============================================================
#define M0_M1 46 //E220のM0,M1
#define LORARXD 19
#define LORATXD 20
// ボタン、LED===========================================================
#define PUSH_SW 21
#define STS_LED 47
a_SDCard.inc
/*----------------------------------
概要:画像の保存フォルダ作成
引数:fs=SDカードのオブジェクト path=対象パス
戻値:なし
-----------------------------------*/
void createDir(fs::FS& fs, const char* path) {
Serial.printf("Creating Dir: %s\n", path);
if (fs.mkdir(path)) {
Serial.println("Dir created");
} else {
Serial.println("mkdir failed");
}
}
b_setup.inc
void setup(){
delay(2000);
}
c_loop.inc
void loop(){
delay(2000);
}
今回なぜこんな分け方をしたかというと、
Mainのところではピンアサインのセット
a_***では今回使用したい機能だけインポートすればすぐに使える
みたいなコンセプトでしたのだが実際にやってみると全然動かない。
エラーが出まくる。
試しにコードをすべて同じファイル(Main.inc)に書き込むと正常にコンパイルできる。
色々原因を探ってみるとMain.incで
・include処理
・setup
・loop
を宣言しないとだめみたいだった。
あくまで分けたファイルでは、関数の作り込みしかできなみたい。
残念。。。