I'm using a Teensy 3.5
Wire.begin(); Wire.setClock(400000); Wire.onError(I2C_0_OnError); Wire.onTransmitDone(I2C_0_TransmitDone); Wire.onReqFromDone(I2C_0_ReceiveDone);
The main loop writes to the slave, the I2C_0_TransmitDone reads from the slave and the I2C_0_ReceiveDone processes the data.
This works well when only using 1 I2C. When using Wire and Wire1 using I2C_1_***** functions, the transmit/receive work as intended but only I2C_1_OnError will get called for errors on both busses.
I got round that by using 1 onError function for both.
Then I tried 3 busses with Wire2 using I2C_2_****** for onTransmitDone/onReqFromDone as well. This time I2C_X_TransmitDone would be called correctly but only I2C_1_ReceiveDone would be called.
Is it some limitation with too many interrupts and timeouts?
I'm using a Teensy 3.5
Wire.begin(); Wire.setClock(400000); Wire.onError(I2C_0_OnError); Wire.onTransmitDone(I2C_0_TransmitDone); Wire.onReqFromDone(I2C_0_ReceiveDone);The main loop writes to the slave, the I2C_0_TransmitDone reads from the slave and the I2C_0_ReceiveDone processes the data.
This works well when only using 1 I2C. When using Wire and Wire1 using I2C_1_***** functions, the transmit/receive work as intended but only I2C_1_OnError will get called for errors on both busses.
I got round that by using 1 onError function for both.
Then I tried 3 busses with Wire2 using I2C_2_****** for onTransmitDone/onReqFromDone as well. This time I2C_X_TransmitDone would be called correctly but only I2C_1_ReceiveDone would be called.
Is it some limitation with too many interrupts and timeouts?