Added setCRCLength

This commit is contained in:
maniacbug 2011-05-27 20:09:29 -07:00
parent ec33f03368
commit 34efd5ac94
2 changed files with 19 additions and 1 deletions

View File

@ -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

9
RF24.h
View File

@ -12,6 +12,7 @@
#include <inttypes.h>
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);
/**@}*/
};