SPI interrupts I2C?

In the arduino...if I am running an SPI master, does everything else get blocked out (as if it was an interrupt)?

For instance, I am trying to run a device and talk to an SPI device. If I try have a master I2C coummincate with it, will the I2C be blocked out while the other device is talking SPI?

Here is the chain of microprocessors...

I2C Master ------> I2C Slave/SPI Master -------> SPI slave device

How do you run the SPI as Master ? There is a interrupt mode for SPI, but I don't understand that. Normally, a SPI.transfer() causes the Arduino to wait until everything is transmitted. During that waiting, a interrupt is normally executed.

https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/libraries/SPI/SPI.h https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/libraries/SPI/SPI.cpp

It should work. The Master can communicate with the Slave, while the Slave is busy with SPI.

Gibson486: In the arduino...if I am running an SPI master, does everything else get blocked out (as if it was an interrupt)?

For instance, I am trying to run a device and talk to an SPI device. If I try have a master I2C coummincate with it, will the I2C be blocked out while the other device is talking SPI?

Here is the chain of microprocessors...

I2C Master ------> I2C Slave/SPI Master -------> SPI slave device

inside your I2C Slave ISR's (onReceive,onRequest) do not execute any SPI commands, or for that matter, do not execute any library functions, Arduino libraries are not re-entrant. if you need to do any complex tasks because of I2C slave commands, set some flags that are monitored in your main loop code. that way you are not shooting yourself in the foot by trying to do multiple things at the same time using the same hardware.

Chuck