M5stack core2 V1.1 コンパイルエラー
初心者です。
M5stack core2 V1.1
Aruduino IDE スケッチ作成
Core2 (M5core2 ver0.1.7)で作成したスケッチを今回入手した
Core2 V1.1に書き込みすると、LCDが表示されない症状が発生
シリアルモニタには、出力されるので、ESPは動いている様子。
スイッチサイエンス H.Pを参照すると
M5Core2ライブラリv0.1.8にてAXP2101に対応しています。以前のバージョンでビルドされているバイナリそのままではCore2 v1.1では動作しない場合があります。
とありましたので、ver0.1.8 UPDATE しましたが、コンパイルエラーとなります。
原因と対処方法をご教示ください。
※スケッチ例(core2 basics helloworld)でも、同様にコンパイルエラーとなる。
発生している問題・エラー
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setChannelEnable(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:267:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setChannelDisable(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:287:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setWarnAlertShuntLimit(ina3221_ch_t, int32_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:306:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setCritAlertShuntLimit(ina3221_ch_t, int32_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:326:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setCurrentSumEnable(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:361:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setCurrentSumDisable(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:382:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'int32_t INA3221::getShuntVoltage(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:403:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'float INA3221::getVoltage(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:501:12: error: enumeration value 'INA3221_CH_NUM' not handled in switch [-Werror=switch]
switch (channel) {
^
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setWarnAlertShuntLimit(ina3221_ch_t, int32_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:319:11: error: 'reg' may be used uninitialized in this function [-Werror=maybe-uninitialized]
_write(reg, (uint16_t *)&val);
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'void INA3221::setCritAlertShuntLimit(ina3221_ch_t, int32_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:339:11: error: 'reg' may be used uninitialized in this function [-Werror=maybe-uninitialized]
_write(reg, (uint16_t *)&val);
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'int32_t INA3221::getShuntVoltage(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:415:10: error: 'reg' may be used uninitialized in this function [-Werror=maybe-uninitialized]
_read(reg, &val_raw);
~~~~~^~~~~~~~~~~~~~~
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp: In member function 'float INA3221::getVoltage(ina3221_ch_t)':
c:\Users\user\Documents\Arduino\libraries\M5Core2\src\INA3221.cpp:513:10: error: 'reg' may be used uninitialized in this function [-Werror=maybe-uninitialized]
_read(reg, &val_raw);
~~~~~^~~~~~~~~~~~~~~
"
次のフォルダのライブラリM5Core2バージョン0.1.8を使用中:C:\Users\user\Documents\Arduino\libraries\M5Core2
次のフォルダのライブラリWireバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\Wire
次のフォルダのライブラリSPIバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\SPI
次のフォルダのライブラリFSバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\FS
次のフォルダのライブラリSDバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\SD
次のフォルダのライブラリSPIFFSバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\SPIFFS
次のフォルダのライブラリHTTPClientバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\HTTPClient
次のフォルダのライブラリWiFiバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\WiFi
次のフォルダのライブラリWiFiClientSecureバージョン2.0.0を使用中:C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\WiFiClientSecure
exit status 1
Compilation error: exit status 1
### 該当するソースコード
```Aruduino IDE ver 2.2.1
スケッチ
#include <M5Core2.h>
int a = 230;// 枠 下位 y
int b = 22;// 1枠 y
int dac; //dac 宣言
int DAC;//dac 合計値
int tank = 200;//タンク容量
int bas = 3129;//mv MAX値
int aveNum = 10;//サンプリング数
int aveCycle = 10; //サンプリング周期(ms)
void setup() {
Serial.begin(115200); //srial
M5.begin(); // Init M5Core2 初期化
pinMode(35,ANALOG); //dac input
}
/* After the program in setup() runs, it runs the program in loop()
*/
void loop() {
int DAC = 0; //平均計算のための中間の数値を格納
int i; //繰り返しのためのカウンター
int cycle = 3000; //チェック周期(ms)
int v = 330; //Voltage mV
int d;//表示値
char s[16];//buff
// low 142
for (i = 0 ; i < aveNum; i++) {
int dac = analogReadMilliVolts(35); //アナログ入力
DAC = DAC + dac; //読み値を足し合わせ合計していく
delay(aveCycle);
}
dac = DAC / aveNum; //合計から平均を算出しdacとして出力
Serial.println(dac); //読み値を表示
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(280, 100); // Move the cursor position to (x,y).
M5.Lcd.setTextColor(WHITE); // Set the font color to white.
M5.Lcd.setTextFont(4);
M5.Lcd.setTextSize(3);
M5.Lcd.printf("L"); // リッター表示
d = tank*dac/bas;//タンク容量換算
M5.Lcd.setCursor(105, 100); // Move the cursor position to (x,y)
M5.Lcd.setTextColor(WHITE);
dtostrf(d, 6, 0, s);
M5.Lcd.drawRect(5, 10, 100, 220,GREEN);
if (dac <= v) {
M5.Lcd.fillRect(5, (a-b), 100, 22,RED);
delay(cycle);
}
else if (dac <= (2*v)) {
M5.Lcd.fillRect(5, (a-2*b), 100, (2*b),ORANGE);
delay(cycle);
}
else if (dac <= (3*v)) {
M5.Lcd.fillRect(5, (a-3*b), 100, (3*b),CYAN);
delay(cycle);
}
else if (dac <= (4*v)) {
M5.Lcd.fillRect(5, (a-4*b), 100, (4*b),CYAN);
delay(cycle);
}
else if (dac <= (5*v)) {
M5.Lcd.fillRect(5, (a-5*b), 100, (5*b),CYAN);
delay(cycle);
}
else if (dac <= (6*v)) {
M5.Lcd.fillRect(5, (a-6*b), 100, (6*b),CYAN);
delay(cycle);
}
else if (dac <= (7*v)) {
M5.Lcd.fillRect(5, (a-7*b), 100, (7*b),CYAN);
delay(cycle);
}
else if (dac <= (8*v)) {
M5.Lcd.fillRect(5, (a-8*b), 100, (8*b),CYAN);
delay(cycle);
}
else if (dac <= (9*v)) {
M5.Lcd.fillRect(5, (a-9*b), 100, (9*b),CYAN);
delay(cycle);
}
else if (dac <= (10*v)) {
M5.Lcd.fillRect(5, (a-10*b), 100, (10*b),CYAN);
delay(cycle);
}
}
### 自分で試したこと
M5core2 ライブラリを0.1.7に戻すとコンパイルエラーは出ないが
書き込みすると、LCD画面が出ない。