Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite of Simple_Wire to improve performance #2

Merged
merged 3 commits into from
Mar 4, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Merge branch 'main' into major-rework
ZHomeSlice authored Mar 4, 2025
commit 06f2ebbb731ac9f9d258c0c182517e7161382f79
8 changes: 5 additions & 3 deletions Simple_Wire.cpp
Original file line number Diff line number Diff line change
@@ -37,16 +37,19 @@ void Simple_Wire::begin(int sdaPin, int sclPin)
_Begin = true;
#ifdef __AVR__
Wire.begin();

Wire.setClock(400000); // 400kHz I2C clock.
Wire.setWireTimeout(3000, true); // timeout value in uSec
#elif defined(ESP8266) || defined(ESP32)
Wire.begin(sdaPin, sclPin, (uint32_t)400000); // 400kHz I2C clock.

#elif defined(ARDUINO_ARCH_RP2040)
Wire.setSCL(sclPin);
Wire.setSDA(sdaPin);
Wire.begin();
Wire.setClock(400000); // 400kHz I2C clock.
#else

Wire.begin();
Wire.setClock(400000); // 400kHz I2C clock.

@@ -133,6 +136,7 @@ Simple_Wire &Simple_Wire::ReadBitTemplate(uint8_t AltAddress, uint8_t regAddr, u

// Write Bits using Bit number and length


template <typename T>
Simple_Wire &Simple_Wire::WriteBitTemplate(uint8_t AltAddress, uint8_t regAddr, uint8_t length, uint8_t bitNum, bool SkipRead, T Val)
{
@@ -142,6 +146,7 @@ Simple_Wire &Simple_Wire::WriteBitTemplate(uint8_t AltAddress, uint8_t regAddr,
{
T mask = (((static_cast<T>(1) << length) - 1) << (bitNum - length + 1));
Val <<= (bitNum - length + 1); // shift Data into correct position

}
WriteBitMaskTemplate<T>( AltAddress, regAddr, SkipRead, Mask, Val)
return *this;
@@ -256,6 +261,3 @@ template Simple_Wire& Simple_Wire::TRead<int32_t>(uint8_t, uint8_t, uint8_t, uin
template Simple_Wire& Simple_Wire::TRead<uint32_t>(uint8_t, uint8_t, uint8_t, uint8_t, uint32_t*);
template Simple_Wire& Simple_Wire::TRead<int64_t>(uint8_t, uint8_t, uint8_t, uint8_t, int64_t*);
template Simple_Wire& Simple_Wire::TRead<uint64_t>(uint8_t, uint8_t, uint8_t, uint8_t, uint64_t*);



You are viewing a condensed version of this merge commit. You can view the full changes here.