diff --git a/mrf24j.cpp b/mrf24j.cpp index 1e5d325..dabdb0f 100644 --- a/mrf24j.cpp +++ b/mrf24j.cpp @@ -40,6 +40,7 @@ Mrf24j::Mrf24j(int pin_reset, int pin_chip_select, int pin_interrupt) { SPI.setBitOrder(MSBFIRST) ; SPI.setDataMode(SPI_MODE0); + SPI.begin(); } @@ -148,6 +149,41 @@ void Mrf24j::send16(word dest16, char * data) { write_short(MRF_TXNCON, (1<> 8); + write_long(i++, dest16 & 0xff); // dest16 low + write_long(i++, dest16 >> 8); // dest16 high + + word src16 = address16_read(); + write_long(i++, src16 & 0xff); // src16 low + write_long(i++, src16 >> 8); // src16 high + + // All testing seems to indicate that the next two bytes are ignored. + //2 bytes on FCS appended by TXMAC + i+=ignoreBytes; + for (int q = 0; q < len; q++) { + write_long(i++, data[q]); + } + // ack on, and go! + write_short(MRF_TXNCON, (1<