8 for(uint8_t i = 0;i < len;i++) datain[i] = SPI.transfer(dataout[i]);
14 while (len--) SPI.transfer(*dataout++);
30 pinMode(cePin,OUTPUT);
31 pinMode(csnPin,OUTPUT);
37 pinMode(MOSI, OUTPUT);
42 SPI.setDataMode(SPI_MODE0);
43 SPI.setBitOrder(MSBFIRST);
45 SPI.setClockDivider(SPI_CLOCK_DIV2);
47 SPI.setClockDivider(21);
66 configRegister(
RF_CH,channel);
77 configRegister(
RX_PW_P0, payload_size);
78 configRegister(
RX_PW_P1, payload_size);
113 uint8_t status = getStatus();
145 transferSync(data,data,payload);
171 transmitSync(value,len);
179 transferSync(value,value,1);
188 uint8_t status=SPI.transfer(0xff);
200 status = getStatus();
203 status = getStatus();
220 transmitSync(value,payload);
233 status = getStatus();
255 delayMicroseconds(200);
271 uint8_t status = SPI.transfer(command);
279 SPI.transfer(command);
280 uint8_t val = SPI.transfer(0);
288 uint8_t status = SPI.transfer(command);
308 delayMicroseconds(200);
312 digitalWrite(cePin,HIGH);
316 digitalWrite(cePin,LOW);
320 digitalWrite(csnPin,HIGH);
324 digitalWrite(csnPin,LOW);
363 if (val == sp ) res =
true;
378 unsigned long starttime = millis();
379 while ((millis() - starttime) < timeout)
if (dataReady())
return true;
393 SetGE(group,element);
405 void ss_nrf24::SendAirData(uint8_t group,uint8_t element,
int dato,uint8_t del)
408 SetGE(group,element);
419 void ss_nrf24::SendAirData(uint8_t group,uint8_t element,
float dato,uint8_t del)
422 SetGE(group,element);
433 void ss_nrf24::SendAirData(uint8_t group,uint8_t element,
unsigned long dato,uint8_t del)
436 SetGE(group,element);
446 if(payload!=6) setPayLoadSize(6);
447 send((byte *)RefData.databuffer);
457 RefData.IO.Group=group;
458 RefData.IO.Element=element;
495 getData((uint8_t *)RefData.databuffer);
509 for(
int kk=0;kk<0x17;kk++)
512 McAir24.readRegister( kk, ®istro,
sizeof(registro) );
513 Serial.print(
"Register 0x" );
514 Serial.print(kk,HEX);
516 Serial.print(
" = " );
518 Serial.print( registro, BIN );
519 Serial.print(
" - 0x" );
520 Serial.println( registro, HEX );
bool Set_Speed_Power(uint8_t)
#define McAir24_MASK_MAX_RT
void writeRegister(uint8_t reg, uint8_t *value, uint8_t len)
void getData(uint8_t *data)
void Print_Internal_Registers()
#define McAir24_W_REGISTER
#define McAir24_R_REGISTER
void transmitSync(uint8_t *dataout, uint8_t len)
#define McAir24_Reg09_RPD
uint8_t spiCommand(uint8_t)
#define McAir24_Reg06_RF_SETUP
void SendData(uint8_t del=30)
Send data using McAir protocol.
uint8_t readRegister(uint8_t reg, uint8_t *value, uint8_t len)
void SendAirData(uint8_t, uint8_t, char, uint8_t del=30)
void setTADDR(uint8_t *adr)
void setRADDR(uint8_t *adr)
#define McAir24_Reg04_SETUP_RETR
#define McAir24_Reg17_FIFO_STATUS
uint8_t spiWrite(uint8_t, uint8_t)
void SetGE(uint8_t, uint8_t)
bool waitAvailableTimeout(uint16_t)
#define McAir24_Reg00_CONFIG
bool init(uint8_t, uint8_t)
#define McAir24_MASK_TX_DS
void transferSync(uint8_t *dataout, uint8_t *datain, uint8_t len)
#define McAir24_REGISTER_MASK
void setPayLoadSize(uint8_t)
#define McAir24_Reg07_STATUS
void send(uint8_t *value)
uint8_t configRegister(uint8_t reg, uint8_t value)
uint8_t readRegister(uint8_t reg)