Brought the report in a more legible format, however I do not see overlaps.
What I'd suggest, is to place a dummy buffer dbuf(32) As Byte immediately after declaration of TM(7), to eliminate a memory problem.
Also increase stack and frame, you have lots of sram left.
As Ian suggested, replace I2creceive() by its code-equivalent and get the bytes piece by piece.
If that won't work, and you can send debug messages via the serial, read the Timer0 registers, and send the content to a terminal.
This allows to check, what's going on.
Registers are:
TCCR0
OCR0
ASSR
TIMSK
↧