Merge branch 'master' of 207.97.227.239:maniacbug/RF24

This commit is contained in:
maniacbug 2011-04-28 20:34:34 -07:00
commit a88e78a0da
2 changed files with 34 additions and 26 deletions

View File

@ -22,6 +22,7 @@
void RF24::csn(int mode) void RF24::csn(int mode)
{ {
SPI.setDataMode(SPI_MODE0);
digitalWrite(csn_pin,mode); digitalWrite(csn_pin,mode);
} }
@ -70,6 +71,8 @@ uint8_t RF24::write_register(uint8_t reg, uint8_t value)
{ {
uint8_t status; uint8_t status;
IF_SERIAL_DEBUG(printf_P(PSTR("write_register(%02x,%02x)\n\r"),reg,value));
csn(LOW); csn(LOW);
status = SPI.transfer( W_REGISTER | ( REGISTER_MASK & reg ) ); status = SPI.transfer( W_REGISTER | ( REGISTER_MASK & reg ) );
SPI.transfer(value); SPI.transfer(value);
@ -163,7 +166,7 @@ uint8_t RF24::get_status(void)
void RF24::print_status(uint8_t status) void RF24::print_status(uint8_t status)
{ {
printf("STATUS=%02x: RX_DR=%x TX_DS=%x MAX_RT=%x RX_P_NO=%x TX_FULL=%x\n\r", printf_P(PSTR("STATUS=%02x: RX_DR=%x TX_DS=%x MAX_RT=%x RX_P_NO=%x TX_FULL=%x\n\r"),
status, status,
(status & _BV(RX_DR))?1:0, (status & _BV(RX_DR))?1:0,
(status & _BV(TX_DS))?1:0, (status & _BV(TX_DS))?1:0,
@ -177,7 +180,7 @@ void RF24::print_status(uint8_t status)
void RF24::print_observe_tx(uint8_t value) void RF24::print_observe_tx(uint8_t value)
{ {
printf("OBSERVE_TX=%02x: POLS_CNT=%x ARC_CNT=%x\n\r", printf_P(PSTR("OBSERVE_TX=%02x: POLS_CNT=%x ARC_CNT=%x\n\r"),
value, value,
(value >> PLOS_CNT) & B1111, (value >> PLOS_CNT) & B1111,
(value >> ARC_CNT) & B1111 (value >> ARC_CNT) & B1111
@ -186,14 +189,14 @@ void RF24::print_observe_tx(uint8_t value)
/******************************************************************/ /******************************************************************/
RF24::RF24(int _cepin, int _cspin): RF24::RF24(uint8_t _cepin, uint8_t _cspin):
ce_pin(_cepin), csn_pin(_cspin), payload_size(32) ce_pin(_cepin), csn_pin(_cspin), payload_size(32)
{ {
} }
/******************************************************************/ /******************************************************************/
void RF24::setChannel(int channel) void RF24::setChannel(uint8_t channel)
{ {
write_register(RF_CH,min(channel,127)); write_register(RF_CH,min(channel,127));
} }
@ -219,42 +222,48 @@ void RF24::printDetails(void)
uint8_t buffer[5]; uint8_t buffer[5];
uint8_t status = read_register(RX_ADDR_P0,buffer,5); uint8_t status = read_register(RX_ADDR_P0,buffer,5);
print_status(status); print_status(status);
printf("RX_ADDR_P0 = 0x"); printf_P(PSTR("RX_ADDR_P0 = 0x"));
uint8_t *bufptr = buffer + 5; uint8_t *bufptr = buffer + 5;
while( bufptr-- > buffer ) while( bufptr-- > buffer )
printf("%02x",*bufptr); printf_P(PSTR("%02x"),*bufptr);
printf("\n\r"); printf_P(PSTR("\n\r"));
status = read_register(RX_ADDR_P1,buffer,5); status = read_register(RX_ADDR_P1,buffer,5);
printf("RX_ADDR_P1 = 0x"); printf_P(PSTR("RX_ADDR_P1 = 0x"));
bufptr = buffer + 5; bufptr = buffer + 5;
while( bufptr-- > buffer ) while( bufptr-- > buffer )
printf("%02x",*bufptr); printf_P(PSTR("%02x"),*bufptr);
printf("\n\r"); printf_P(PSTR("\n\r"));
status = read_register(RX_ADDR_P2,buffer,1); status = read_register(RX_ADDR_P2,buffer,1);
printf("RX_ADDR_P2 = 0x%02x",*buffer); printf_P(PSTR("RX_ADDR_P2 = 0x%02x"),*buffer);
printf("\n\r"); printf_P(PSTR("\n\r"));
status = read_register(RX_ADDR_P3,buffer,1); status = read_register(RX_ADDR_P3,buffer,1);
printf("RX_ADDR_P3 = 0x%02x",*buffer); printf_P(PSTR("RX_ADDR_P3 = 0x%02x"),*buffer);
printf("\n\r"); printf_P(PSTR("\n\r"));
status = read_register(TX_ADDR,buffer,5); status = read_register(TX_ADDR,buffer,5);
printf("TX_ADDR = 0x"); printf_P(PSTR("TX_ADDR = 0x"));
bufptr = buffer + 5; bufptr = buffer + 5;
while( bufptr-- > buffer ) while( bufptr-- > buffer )
printf("%02x",*bufptr); printf_P(PSTR("%02x"),*bufptr);
printf("\n\r"); printf_P(PSTR("\n\r"));
status = read_register(RX_PW_P0,buffer,1);
printf_P(PSTR("RX_PW_P0 = 0x%02x\n\r"),*buffer);
status = read_register(RX_PW_P1,buffer,1);
printf_P(PSTR("RX_PW_P1 = 0x%02x\n\r"),*buffer);
read_register(EN_AA,buffer,1); read_register(EN_AA,buffer,1);
printf("EN_AA = %02x\n\r",*buffer); printf_P(PSTR("EN_AA = %02x\n\r"),*buffer);
read_register(EN_RXADDR,buffer,1); read_register(EN_RXADDR,buffer,1);
printf("EN_RXADDR = %02x\n\r",*buffer); printf_P(PSTR("EN_RXADDR = %02x\n\r"),*buffer);
read_register(RF_CH,buffer,1); read_register(RF_CH,buffer,1);
printf("RF_CH = %02x\n\r",*buffer); printf_P(PSTR("RF_CH = %02x\n\r"),*buffer);
} }
/******************************************************************/ /******************************************************************/
@ -284,7 +293,6 @@ void RF24::begin(void)
// Set up default configuration. Callers can always change it later. // Set up default configuration. Callers can always change it later.
setChannel(1); setChannel(1);
setPayloadSize(8);
} }
/******************************************************************/ /******************************************************************/

10
RF24.h
View File

@ -18,9 +18,9 @@
class RF24 class RF24
{ {
private: private:
int ce_pin; /**< "Chip Enable" pin, activates the RX or TX role */ uint8_t ce_pin; /**< "Chip Enable" pin, activates the RX or TX role */
int csn_pin; /**< SPI Chip select */ uint8_t csn_pin; /**< SPI Chip select */
int payload_size; /**< Fixed size of payloads */ uint8_t payload_size; /**< Fixed size of payloads */
protected: protected:
/** /**
@ -147,7 +147,7 @@ public:
* @param _cepin The pin attached to Chip Enable on the RF module * @param _cepin The pin attached to Chip Enable on the RF module
* @param _cspin The pin attached to Chip Select * @param _cspin The pin attached to Chip Select
*/ */
RF24(int _cepin, int _cspin); RF24(uint8_t _cepin, uint8_t _cspin);
/** /**
* Begin operation of the chip * Begin operation of the chip
@ -161,7 +161,7 @@ public:
* *
* @param channel Which RF channel to communicate on, 0-127 * @param channel Which RF channel to communicate on, 0-127
*/ */
void setChannel(int channel); void setChannel(uint8_t channel);
/** /**
* Set Payload Size * Set Payload Size