|
楼主 |
发表于 2009-7-17 13:52:48
|
显示全部楼层
void RX_Mode(void)
{
Nop();
Nop();
CE=0;
Nop(); Nop();
TX_ADDRESS[0]=0x34;
TX_ADDRESS[1]=0x43;
TX_ADDRESS[2]=0x10;
TX_ADDRESS[3]=0x10;
TX_ADDRESS[4]= 0x01;
// SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);
TX_ADDRESS[4]= 0x02;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, TX_ADDRESS, TX_ADR_WIDTH);
TX_ADDRESS[4]= 0x03;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, TX_ADDRESS, TX_ADR_WIDTH);
TX_ADDRESS[4]= 0x04;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P3, TX_ADDRESS, TX_ADR_WIDTH);
TX_ADDRESS[4]= 0x05;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P4, TX_ADDRESS, TX_ADR_WIDTH);
TX_ADDRESS[4]= 0x06;
SPI_Write_Buf(WRITE_REG + RX_ADDR_P5, TX_ADDRESS, TX_ADR_WIDTH); // Use the same address on the RX device as the TX device
SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f); // Enable Auto.Ack:Pipe0
// SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x03); // Enable Auto.Ack:Pipe0
SPI_RW_Reg(WRITE_REG + EN_RXADDR,0x3f); // Enable Pipe0
SPI_RW_Reg(WRITE_REG + RF_CH, 40); // Select RF channel 40
// SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH); // Select same RX payload width as TX Payload width
SPI_RW_Reg(WRITE_REG + RX_PW_P1, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RX_PW_P2, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RX_PW_P3, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RX_PW_P4, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RX_PW_P5, TX_PLOAD_WIDTH);
SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
SPI_RW_Reg(WRITE_REG + CONFIG, 0x3f); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled..
Nop();
CE = 1; // Set CE pin high to enable RX device
Nop();
Nop();
Nop();
// This device is now ready to receive one packet of 16 bytes payload from a TX device sending to address
// '3443101001', with auto acknowledgment, retransmit count of 10, RF channel 40 and datarate = 2Mbps.
} |
|