From d9c3c73b0002ad5567a228acce08926bc669cace Mon Sep 17 00:00:00 2001 From: Benjamin Koch <bbbsnowball@gmail.com> Date: Sat, 13 May 2023 01:15:44 +0200 Subject: [PATCH] don't hang if I2C is not available ... which is rather important when JLC has made solder bridges on the TMP102 for 20% of the boards... --- firmware/test1/heizung-test1/src/main.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/firmware/test1/heizung-test1/src/main.cpp b/firmware/test1/heizung-test1/src/main.cpp index 39b2743..6e524f6 100644 --- a/firmware/test1/heizung-test1/src/main.cpp +++ b/firmware/test1/heizung-test1/src/main.cpp @@ -58,6 +58,13 @@ Adafruit_NeoPixel pixelsDigout1(2, DIGOUT1, NEO_GRB + NEO_KHZ800); void setup() { rp2040.enableDoubleResetBootloader(); + Serial.begin(9600); // USB serial, baudrate is ignored + if (0) { + while (!Serial) + ; + Serial.println("a1"); + } + pinMode(DRIVE1, OUTPUT); digitalWrite(DRIVE1, LOW); pinMode(DRIVE2, OUTPUT); digitalWrite(DRIVE2, LOW); pinMode(WS2812_DISPLAY, OUTPUT); @@ -83,7 +90,6 @@ void setup() { Wire.setSDA(I2C_OLED_SDA); // I2C0 Wire.setSCL(I2C_OLED_SCL); - Serial.begin(9600); // USB serial, baudrate is ignored Serial1.begin(115200); Wire.begin(); Wire.setClock(100000); @@ -266,7 +272,7 @@ void loop() { } prevButton4 = buttons[3]; - if (rp2040.getCycleCount64() > 2 * 133*1000*1000 && displayMode == 0) { + if (rp2040.getCycleCount64() > 2 * 133*1000*1000 && displayMode == 0 && hasDisplay) { if (displayModePrev != 0) { display.fillRect(67, 0, 128-67, 64, SSD1306_BLACK); display.drawBitmap(0, 0, logo_data, logo_width, logo_height, SSD1306_WHITE); @@ -314,7 +320,7 @@ void loop() { display.println(); display.display(); - } else if (displayMode >= 1 && displayMode <= 3) { + } else if (displayMode >= 1 && displayMode <= 3 && hasDisplay) { int first = (displayMode-1) * 12, last = first + 11; display.fillRect(0, 0, 128, 64, SSD1306_BLACK); display.setTextSize(1); @@ -338,7 +344,7 @@ void loop() { display.write(" "); } display.display(); - } else if (displayMode == 4) { + } else if (displayMode == 4 && hasDisplay) { display.fillRect(0, 0, 128, 64, SSD1306_BLACK); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); @@ -377,7 +383,7 @@ void loop() { display.drawFastHLine(0, y++, v/16, SSD1306_WHITE); } display.display(); - } else if (displayMode == 5) { + } else if (displayMode == 5 && hasDisplay) { display.fillRect(0, 0, 128, 64, SSD1306_BLACK); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); @@ -442,7 +448,7 @@ void loop() { display.println(v5); display.display(); - } else if (displayMode == 6) { + } else if (displayMode == 6 && hasDisplay) { if (displayModePrev != 6) { display.fillRect(0, 0, 128, 64, SSD1306_BLACK); display.drawBitmap(0, 0, logo_data, logo_width, logo_height, SSD1306_WHITE); -- GitLab