Since twi_readFrom() and twi_writeTo() are both blocking functions, there is no need to allocate a special twi_masterBuffer. Doing so wastes valuable RAM, uses extra time to copy the data to the secondary buffer, and limits the transfer size to TWI_BUFFER_SIZE. Instead, it only needs a pointer to the buffer for the IRQ to use for the transfer. And, if asynchronous non-blocking functions are ever added, which will require a different API and callbacks, etc., then the existing txBuffer and rxBuffer for slave mode can just be used there too, since master mode and slave mode can't both be active at the same time.
Apply MCUdude/MiniCore#245 to this MegaCore repo.
Since
twi_readFrom()
andtwi_writeTo()
are both blocking functions, there is no need to allocate a specialtwi_masterBuffer
. Doing so wastes valuable RAM, uses extra time to copy the data to the secondary buffer, and limits the transfer size toTWI_BUFFER_SIZE
. Instead, it only needs a pointer to the buffer for the IRQ to use for the transfer. And, if asynchronous non-blocking functions are ever added, which will require a different API and callbacks, etc., then the existingtxBuffer
andrxBuffer
for slave mode can just be used there too, since master mode and slave mode can't both be active at the same time.