JNP3_IOT_2016Z
/
JNP3_IOT_6_RADIO_ECHO
JNP3 IoT - nrf24L01+ echo app
Fork of nRF24L01P_Hello_World by
Embed:
(wiki syntax)
Show/hide line numbers
main_echo.cpp
00001 #include "mbed.h" 00002 #include "nRF24L01P.h" 00003 00004 //***************************************************************************// 00005 // !!! SETTINGS !!! 00006 00007 #define DATA_RATE NRF24L01P_DATARATE_250_KBPS 00008 //#define DATA_RATE NRF24L01P_DATARATE_1_MBPS 00009 //#define DATA_RATE NRF24L01P_DATARATE_2_MBPS 00010 00011 #define POWER NRF24L01P_TX_PWR_ZERO_DB 00012 //#define POWER NRF24L01P_TX_PWR_MINUS_6_DB 00013 //#define POWER NRF24L01P_TX_PWR_MINUS_12_DB 00014 //#define POWER NRF24L01P_TX_PWR_MINUS_18_DB 00015 00016 #define CHANNEL 0 // 0 - 30 00017 00018 00019 #define RX_ADDRESS ((unsigned long long) 0xABCDEF02) 00020 #define TX_ADDRESS ((unsigned long long) 0xABCDEF00) 00021 #define ECHO_DELAY 0.2 00022 00023 #define TRANSFER_SIZE 1 00024 00025 //***************************************************************************// 00026 00027 00028 00029 Serial pc(USBTX, USBRX); // tx, rx 00030 nRF24L01P radio(PB_15, PB_14, PB_13, PB_12, PB_1, PB_2); // mosi, miso, sck, csn, ce, irq 00031 00032 00033 DigitalOut myled1(LED1); 00034 InterruptIn button(USER_BUTTON); 00035 00036 bool send_data = false; 00037 00038 void send_packet(){ 00039 send_data = true; 00040 } 00041 00042 int main() { 00043 00044 00045 char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE]; 00046 00047 pc.baud(115200); 00048 radio.powerDown(); 00049 radio.powerUp(); 00050 00051 button.rise(&send_packet); 00052 00053 radio.setAirDataRate(DATA_RATE); 00054 radio.setRfOutputPower(POWER); 00055 radio.setRfFrequency(NRF24L01P_MIN_RF_FREQUENCY + 4 * CHANNEL); 00056 radio.setRxAddress(RX_ADDRESS, 4); 00057 radio.setTxAddress(TX_ADDRESS, 4); 00058 radio.setCrcWidth(NRF24L01P_CRC_8_BIT); 00059 00060 // Display the (default) setup of the nRF24L01+ chip 00061 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", radio.getRfFrequency() ); 00062 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", radio.getRfOutputPower() ); 00063 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", radio.getAirDataRate() ); 00064 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", radio.getTxAddress() ); 00065 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", radio.getRxAddress() ); 00066 00067 00068 radio.setTransferSize( TRANSFER_SIZE ); 00069 00070 myled1 = 0; 00071 00072 radio.setReceiveMode(); 00073 radio.enable(); 00074 00075 while (1) { 00076 int tx_bytes; 00077 int rx_bytes; 00078 00079 if(radio.readable()){ 00080 00081 rx_bytes = radio.read(NRF24L01P_PIPE_P0, rxData, sizeof(rxData)); 00082 myled1 = 1; 00083 00084 wait(ECHO_DELAY); 00085 00086 tx_bytes = radio.write(NRF24L01P_PIPE_P0, txData, TRANSFER_SIZE); 00087 myled1 = 0; 00088 } 00089 00090 if(send_data){ 00091 tx_bytes = radio.write(NRF24L01P_PIPE_P0, txData, TRANSFER_SIZE); 00092 send_data = false; 00093 } 00094 00095 } 00096 }
Generated on Sun Jul 17 2022 03:32:55 by 1.7.2