Hi,
I want to update the SoftwareWire library: SoftwareWire/SoftwareWire.cpp at master · Testato/SoftwareWire · GitHub
to make it work with the Arduino Due, Zero, 101, and Adafruit M0 and other processors.
The current version uses writing to registers, and will I will add a AVR check over that.
The other processors will use the normal Arduino functions digitalWrite() and pinMode().
For the AVR chips, to change a pin from INPUT (high impedance) to OUTPUT LOW, first the output register is set for a low value, and after that the direction register is set for output. That is the typical sequence for ATmega chips.
How can I do that for other processors ? To make a good transistion from high impedance to OUTPUT LOW, without making the I2C bus HIGH, not even for a nanosecond.