Jelajahi Sumber

Update GxEPD2_EPD.cpp

fix for RP2040
ZinggJM 3 tahun lalu
induk
melakukan
260ffc6e2a
1 mengubah file dengan 7 tambahan dan 3 penghapusan
  1. 7 3
      src/GxEPD2_EPD.cpp

+ 7 - 3
src/GxEPD2_EPD.cpp

@@ -54,13 +54,15 @@ void GxEPD2_EPD::init(uint32_t serial_diag_bitrate, bool initial, uint16_t reset
   }
   }
   if (_cs >= 0)
   if (_cs >= 0)
   {
   {
-    digitalWrite(_cs, HIGH);
+    digitalWrite(_cs, HIGH); // preset (less glitch for any analyzer)
     pinMode(_cs, OUTPUT);
     pinMode(_cs, OUTPUT);
+    digitalWrite(_cs, HIGH); // set (needed e.g. for RP2040)
   }
   }
   if (_dc >= 0)
   if (_dc >= 0)
   {
   {
-    digitalWrite(_dc, HIGH);
+    digitalWrite(_dc, HIGH); // preset (less glitch for any analyzer)
     pinMode(_dc, OUTPUT);
     pinMode(_dc, OUTPUT);
+    digitalWrite(_dc, HIGH); // set (needed e.g. for RP2040)
   }
   }
   _reset();
   _reset();
   if (_busy >= 0)
   if (_busy >= 0)
@@ -110,14 +112,16 @@ void GxEPD2_EPD::_reset()
     {
     {
       digitalWrite(_rst, LOW);
       digitalWrite(_rst, LOW);
       pinMode(_rst, OUTPUT);
       pinMode(_rst, OUTPUT);
+      digitalWrite(_rst, LOW);
       delay(_reset_duration);
       delay(_reset_duration);
       pinMode(_rst, INPUT_PULLUP);
       pinMode(_rst, INPUT_PULLUP);
       delay(_reset_duration > 10 ? _reset_duration : 10);
       delay(_reset_duration > 10 ? _reset_duration : 10);
     }
     }
     else
     else
     {
     {
-      digitalWrite(_rst, HIGH); // NEEDED for Waveshare "clever" reset circuit, power controller before reset pulse
+      digitalWrite(_rst, HIGH); // NEEDED for Waveshare "clever" reset circuit, power controller before reset pulse, preset (less glitch for any analyzer)
       pinMode(_rst, OUTPUT);
       pinMode(_rst, OUTPUT);
+      digitalWrite(_rst, HIGH); // NEEDED for Waveshare "clever" reset circuit, power controller before reset pulse, set (needed e.g. for RP2040)
       delay(10); // NEEDED for Waveshare "clever" reset circuit, at least delay(2);
       delay(10); // NEEDED for Waveshare "clever" reset circuit, at least delay(2);
       digitalWrite(_rst, LOW);
       digitalWrite(_rst, LOW);
       delay(_reset_duration);
       delay(_reset_duration);