Browse Source

🔨 Prevent SlowSoftWire + Wire name conflict (#25707)

Anson Liu 1 year ago
parent
commit
650e6fc426
2 changed files with 12 additions and 11 deletions
  1. 11 10
      Marlin/src/HAL/shared/eeprom_if_i2c.cpp
  2. 1 1
      Marlin/src/lcd/marlinui.cpp

+ 11 - 10
Marlin/src/HAL/shared/eeprom_if_i2c.cpp

@@ -33,13 +33,14 @@
 
 #if ENABLED(SOFT_I2C_EEPROM)
   #include <SlowSoftWire.h>
-  SlowSoftWire Wire = SlowSoftWire(I2C_SDA_PIN, I2C_SCL_PIN, true);
+  SlowSoftWire eWire = SlowSoftWire(I2C_SDA_PIN, I2C_SCL_PIN, true);
 #else
   #include <Wire.h>
+  #define eWire Wire
 #endif
 
 void eeprom_init() {
-  Wire.begin(
+  eWire.begin(
     #if PINS_EXIST(I2C_SCL, I2C_SDA) && DISABLED(SOFT_I2C_EEPROM)
       uint8_t(I2C_SDA_PIN), uint8_t(I2C_SCL_PIN)
     #endif
@@ -75,16 +76,16 @@ static uint8_t _eeprom_calc_device_address(uint8_t * const pos) {
 
 static void _eeprom_begin(uint8_t * const pos) {
   const unsigned eeprom_address = (unsigned)pos;
-  Wire.beginTransmission(_eeprom_calc_device_address(pos));
+  eWire.beginTransmission(_eeprom_calc_device_address(pos));
   if (!SMALL_EEPROM)
-    Wire.write(uint8_t((eeprom_address >> 8) & 0xFF));  // Address High, if needed
-  Wire.write(uint8_t(eeprom_address & 0xFF));           // Address Low
+    eWire.write(uint8_t((eeprom_address >> 8) & 0xFF));  // Address High, if needed
+  eWire.write(uint8_t(eeprom_address & 0xFF));           // Address Low
 }
 
 void eeprom_write_byte(uint8_t *pos, uint8_t value) {
   _eeprom_begin(pos);
-  Wire.write(value);
-  Wire.endTransmission();
+  eWire.write(value);
+  eWire.endTransmission();
 
   // wait for write cycle to complete
   // this could be done more efficiently with "acknowledge polling"
@@ -93,9 +94,9 @@ void eeprom_write_byte(uint8_t *pos, uint8_t value) {
 
 uint8_t eeprom_read_byte(uint8_t *pos) {
   _eeprom_begin(pos);
-  Wire.endTransmission();
-  Wire.requestFrom(_eeprom_calc_device_address(pos), (byte)1);
-  return Wire.available() ? Wire.read() : 0xFF;
+  eWire.endTransmission();
+  eWire.requestFrom(_eeprom_calc_device_address(pos), (byte)1);
+  return eWire.available() ? eWire.read() : 0xFF;
 }
 
 #endif // USE_SHARED_EEPROM

+ 1 - 1
Marlin/src/lcd/marlinui.cpp

@@ -174,7 +174,7 @@ constexpr uint8_t epps = ENCODER_PULSES_PER_STEP;
 #endif
 
 #if HAS_U8GLIB_I2C_OLED && PINS_EXIST(I2C_SCL, I2C_SDA) && DISABLED(SOFT_I2C_EEPROM)
-  #include "Wire.h"
+  #include <Wire.h>
 #endif
 
 // Encoder Handling