Теперь о проблеме. Блоки рассчитаны на отправку и получение байтовой переменной и работают отлично с одним регистром 74НС165 или 74НС595.
Как изменить блоки для работы с двумя регистрами, то есть отправлять и принимать нужно 16 бит.
Вот листинг блока SPI_BUS_IN для работы с входным регистром 74НС165 (8 входов, 8 бит):
#include <SPI.h>
#include <SPI_Bus.h>
SPI_Bus reg(_8bit, pin);
unsigned long time_=0;
reg.setSelectionPolicy(SPI_Bus::SELECT_BEFORE);
if (millis()>= time_)
{
time_ =millis()+ period_survey;
noInterrupts();
out = reg.read8bits();
interrupts();
}