uint16_t SPIClass::transfer16(uint16_t data) { union { uint16_t val; struct { uint8_t lsb; uint8_t msb; }; } in, out; in.val = data; if((SPI1C & (SPICWBO | SPICRBO))) { //LSBFIRST out.lsb = transfer(in.lsb); out.msb = transfer(in.msb); } else { //MSBFIRST out.msb = transfer(in.msb); out.lsb = transfer(in.lsb); } return out.val;}