unsigned char NRFLib::send_success(void) { unsigned char status = SPI_Read(STATUS); // if sending successful (TX_DS) or max retries exceeded (MAX_RT). if (status & TX_DS) { SPI_RW_Reg(WRITE_REG+STATUS, status); return TX_SUCCESS; } else if (status & MAX_RT) { SPI_RW_Reg(WRITE_REG+STATUS, status); flushTX(); return TX_MAX_RETRIES; } else { status = SPI_Read(FIFO_STATUS); if (status & TX_EMPTY) { return TX_FIFO_EMPTY; } else { return TX_SENDING; } } }
void nRF24L01p::init(){ flushRX(); flushTX(); dynamicPayload(P0|P1); feature(DPL|DYN_ACK); writeReg(SETUP_RETR,0x2F); writeReg(STATUS,0x70); powerUp(); if(_prim_rx && _prim_tx){ enableRX(P1|P0); primPRX(); ceHigh(); }else if(_prim_rx && !_prim_tx){ enableRX(P1); primPRX(); ceHigh(); }else if(!_prim_rx && _prim_tx){ enableRX(P0); primPTX(); } _init=true; }