Corrected TwoWire::onRequestService(void) to correctly reset the write buffer before send frame. #5
+2
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi!
Same pull request than in the genuine megaavr Arduino master :
arduino/ArduinoCore-megaavr#22
txBufferIndex and txBufferLength is used in TwoWire::write(uint8_t data) of the original ATMEGA328p Wire library for control the iteration of write buffer...
...but no longer control the buffer since TwoWire::write(uint8_t data) is modified for run with megaavr architecture (the new variable for control it is slave_bytesToWrite).
I've modified TwoWire::onRequestService(void) for reset correctly the buffer before than the slave send his datas.
This sample code slave side shows the problem: (in using the ATMEGA4809 chip from Arduino Uno WiFi Rev2)
1st read on master at 0x10 address:
2nd read on master at 0x10 address:
3th read on master at 0x10 address:
etc.