Цитата(mempfis_ @ Oct 11 2010, 11:22)

Введите переменную статуса spi. Пусть она принимает значения 0, 1, 2. 0 - spi не занят, 1 - доступ к устройству 1, 2 - доступ к устройству 2.
В цикле или прерываниях проверяете.
Правда здесь есть некоторые проблемы:
а) перед проверкой статуса нужно запретить прерывания, а после его установки - разрешить, иначе можно попасть в прерывание между проверкой статуса и его установкой.
б) если это выполняется из какого-то прерывания, то можно в нем зависнуть надолго ожидая освобождения SPI, а в прерываниях надолго зависать не рекомендуется.
Поэтому я предпочитаю для таких случаев кольцевой буфер.