From 34efd5ac94a5c5fd173a26fd11d5ef9b50c25b65 Mon Sep 17 00:00:00 2001 From: maniacbug Date: Fri, 27 May 2011 20:09:29 -0700 Subject: [PATCH] Added setCRCLength --- RF24.cpp | 11 +++++++++++ RF24.h | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/RF24.cpp b/RF24.cpp index 531401e..e5110f1 100644 --- a/RF24.cpp +++ b/RF24.cpp @@ -619,6 +619,17 @@ void RF24::setDataRate(rf24_datarate_e speed) if (speed == RF24_2MBPS) setup |= RF_DR; write_register(RF_SETUP,setup); + +} + +/******************************************************************/ + +void RF24::setCRCLength(rf24_crclength_e length) +{ + uint8_t config = read_register(CONFIG) & _BV(CRCO); + if (length == RF24_CRC_16) + config |= _BV(CRCO); + write_register(CONFIG,config); } // vim:ai:cin:sts=2 sw=2 ft=cpp diff --git a/RF24.h b/RF24.h index 53f71ff..3165947 100644 --- a/RF24.h +++ b/RF24.h @@ -12,6 +12,7 @@ #include typedef enum { RF24_1MBPS = 0, RF24_2MBPS } rf24_datarate_e; +typedef enum { RF24_CRC_8 = 0, RF24_CRC_16 } rf24_crclength_e; /** * Driver for nRF24L01(+) 2.4GHz Wireless Transceiver @@ -420,7 +421,6 @@ public: * * @return true if was carrier, false if not */ - boolean testCarrier(void); /** @@ -429,6 +429,13 @@ public: * @param speed RF24_1MBPS for 1Mbps or RF24_2MBPS for 2Mbps */ void setDataRate(rf24_datarate_e speed); + + /** + * Set the CRC length + * + * @param length RF24_CRC_8 for 8-bit or RF24_CRC_16 for 16-bit + */ + void setCRCLength(rf24_crclength_e length); /**@}*/ };