Пт фев 09, 2018 09:18:45
void nrf24_init(){
w_register(CONFIG, (1<<PWR_UP)|(1<<EN_CRC)|(0<<PRIM_RX));
for(unsigned int t=0; t<5800; t++);
w_register(CONFIG, (1<<PWR_UP)|(1<<EN_CRC)|(1<<PRIM_RX));
CE_HI;
for(unsigned int t=0; t<600; t++);
w_register(RX_PW_P0,9);
w_register(RF_CH, 4);
set_txaddr(tx_address);
set_rxaddr(rx_address);
}
void ptx(){
CE_LO;
CSN_LO;
w_register(CONFIG,(1<<PWR_UP)|(1<<EN_CRC)|(0<<PRIM_RX));
CSN_HI;
CE_HI;
for(unsigned char i=0; i<32; i++);
CE_LO;
for(unsigned int t=0; t<600; t++);
}
void prx(){
CSN_LO;
w_register(CONFIG,(1<<PWR_UP)|(1<<EN_CRC)|(1<<PRIM_RX));
CSN_HI;
CE_HI;
for(unsigned int t=0; t<600; t++);
}
void nrf24_dataWrite(unsigned char* data, unsigned char nmbr){
CSN_LO;
SPI(FLUSH_TX);
CSN_HI;
CSN_LO;
SPI(W_TX_PAYLOAD);
for(unsigned char i=0; i<nmbr; i++){
SPI(data[i]);
}
CSN_HI;
ptx();
}
void nrf24_dataRead(unsigned char* data, unsigned char nmbr){
CSN_LO;
SPI(R_RX_PAYLOAD);
for(unsigned char i=0; i<nmbr; i++){
data[i] = SPI(0xFF);
}
CSN_HI;
}
int main( void ){
unsigned long tick = 800000;
spi_init();
nrf24_init();
for(unsigned int t=0; t<5800; t++);
while(1){
if(--tick == 0){
nrf24_dataWrite(snd, 9);
tick = 800000;
}
if(!(PIN_SPI&DD_IRQ)){
unsigned char tmp = r_register(STATUS);
w_register(STATUS, tmp);
prx();
}
}
}
Пт фев 09, 2018 15:52:39
Пт фев 09, 2018 21:52:45