Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:56d18c34a019, 2016-06-26 (annotated)
- Committer:
- sanirash
- Date:
- Sun Jun 26 03:42:51 2016 +0000
- Revision:
- 0:56d18c34a019
M;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| sanirash | 0:56d18c34a019 | 1 | /*****Multiceiver wireless network*****/ |
| sanirash | 0:56d18c34a019 | 2 | |
| sanirash | 0:56d18c34a019 | 3 | #include "mbed.h" |
| sanirash | 0:56d18c34a019 | 4 | #include "nRF24L01P.h" |
| sanirash | 0:56d18c34a019 | 5 | |
| sanirash | 0:56d18c34a019 | 6 | Serial pc(USBTX, USBRX); // tx, rx |
| sanirash | 0:56d18c34a019 | 7 | |
| sanirash | 0:56d18c34a019 | 8 | nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4); // mosi, miso, sck, csn, ce, irq |
| sanirash | 0:56d18c34a019 | 9 | |
| sanirash | 0:56d18c34a019 | 10 | //blue for pipe1 and green for pipe0 |
| sanirash | 0:56d18c34a019 | 11 | DigitalOut GreenLED(LED2); |
| sanirash | 0:56d18c34a019 | 12 | DigitalOut RedLED(LED1); |
| sanirash | 0:56d18c34a019 | 13 | |
| sanirash | 0:56d18c34a019 | 14 | int main() { |
| sanirash | 0:56d18c34a019 | 15 | |
| sanirash | 0:56d18c34a019 | 16 | char RxDataCnt_PIPE0; |
| sanirash | 0:56d18c34a019 | 17 | char temp; |
| sanirash | 0:56d18c34a019 | 18 | char abc; |
| sanirash | 0:56d18c34a019 | 19 | char buff[1]; |
| sanirash | 0:56d18c34a019 | 20 | GreenLED=1; |
| sanirash | 0:56d18c34a019 | 21 | RedLED=1; |
| sanirash | 0:56d18c34a019 | 22 | //specifying address same as transmitter for pipe0 and pipe1 |
| sanirash | 0:56d18c34a019 | 23 | |
| sanirash | 0:56d18c34a019 | 24 | long long RxAddress_PIPE0 = 0xE7E7E7E7E7; |
| sanirash | 0:56d18c34a019 | 25 | |
| sanirash | 0:56d18c34a019 | 26 | my_nrf24l01p.powerUp(); |
| sanirash | 0:56d18c34a019 | 27 | my_nrf24l01p.setRfFrequency(2425); |
| sanirash | 0:56d18c34a019 | 28 | |
| sanirash | 0:56d18c34a019 | 29 | //set rx address with default address and for specified pipe |
| sanirash | 0:56d18c34a019 | 30 | |
| sanirash | 0:56d18c34a019 | 31 | my_nrf24l01p.setRxAddress(RxAddress_PIPE0, DEFAULT_NRF24L01P_ADDRESS_WIDTH, NRF24L01P_PIPE_P0); |
| sanirash | 0:56d18c34a019 | 32 | |
| sanirash | 0:56d18c34a019 | 33 | |
| sanirash | 0:56d18c34a019 | 34 | // Display the (default) setup of the nRF24L01+ chip |
| sanirash | 0:56d18c34a019 | 35 | pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
| sanirash | 0:56d18c34a019 | 36 | pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
| sanirash | 0:56d18c34a019 | 37 | pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
| sanirash | 0:56d18c34a019 | 38 | |
| sanirash | 0:56d18c34a019 | 39 | //display rx address for both pipes |
| sanirash | 0:56d18c34a019 | 40 | pc.printf( "nRF24L01+ RX Address - PIPE0 : 0x%010llX\r\n", my_nrf24l01p.getRxAddress(NRF24L01P_PIPE_P0) ); |
| sanirash | 0:56d18c34a019 | 41 | |
| sanirash | 0:56d18c34a019 | 42 | |
| sanirash | 0:56d18c34a019 | 43 | pc.printf( "Wireless Sensor Network - Multiceiver\r\n" ); |
| sanirash | 0:56d18c34a019 | 44 | |
| sanirash | 0:56d18c34a019 | 45 | RxDataCnt_PIPE0 = 1; |
| sanirash | 0:56d18c34a019 | 46 | |
| sanirash | 0:56d18c34a019 | 47 | |
| sanirash | 0:56d18c34a019 | 48 | //set transfer size explicitly for both pipes |
| sanirash | 0:56d18c34a019 | 49 | |
| sanirash | 0:56d18c34a019 | 50 | my_nrf24l01p.setTransferSize(RxDataCnt_PIPE0, NRF24L01P_PIPE_P0); |
| sanirash | 0:56d18c34a019 | 51 | |
| sanirash | 0:56d18c34a019 | 52 | my_nrf24l01p.setReceiveMode(); |
| sanirash | 0:56d18c34a019 | 53 | my_nrf24l01p.enable(); |
| sanirash | 0:56d18c34a019 | 54 | |
| sanirash | 0:56d18c34a019 | 55 | while (1) { |
| sanirash | 0:56d18c34a019 | 56 | |
| sanirash | 0:56d18c34a019 | 57 | //check if data is available in pipe0 |
| sanirash | 0:56d18c34a019 | 58 | if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) ) |
| sanirash | 0:56d18c34a019 | 59 | { |
| sanirash | 0:56d18c34a019 | 60 | |
| sanirash | 0:56d18c34a019 | 61 | // ...read the data into the receive buffer |
| sanirash | 0:56d18c34a019 | 62 | temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, buff, RxDataCnt_PIPE0 ); |
| sanirash | 0:56d18c34a019 | 63 | |
| sanirash | 0:56d18c34a019 | 64 | abc=buff[0]; |
| sanirash | 0:56d18c34a019 | 65 | |
| sanirash | 0:56d18c34a019 | 66 | pc.printf("Received: %d bytes from PIPE0; POT=%d\r\n",temp,buff[0]); |
| sanirash | 0:56d18c34a019 | 67 | |
| sanirash | 0:56d18c34a019 | 68 | if(abc=='R') |
| sanirash | 0:56d18c34a019 | 69 | { |
| sanirash | 0:56d18c34a019 | 70 | pc.printf("%c",abc); |
| sanirash | 0:56d18c34a019 | 71 | RedLED =0; |
| sanirash | 0:56d18c34a019 | 72 | } |
| sanirash | 0:56d18c34a019 | 73 | else if(abc=='r') |
| sanirash | 0:56d18c34a019 | 74 | { |
| sanirash | 0:56d18c34a019 | 75 | pc.printf("%c",abc); |
| sanirash | 0:56d18c34a019 | 76 | RedLED =1; |
| sanirash | 0:56d18c34a019 | 77 | } |
| sanirash | 0:56d18c34a019 | 78 | else if(abc=='g') |
| sanirash | 0:56d18c34a019 | 79 | { pc.printf("%c",abc); |
| sanirash | 0:56d18c34a019 | 80 | GreenLED =1; |
| sanirash | 0:56d18c34a019 | 81 | |
| sanirash | 0:56d18c34a019 | 82 | } |
| sanirash | 0:56d18c34a019 | 83 | else if(abc=='G') |
| sanirash | 0:56d18c34a019 | 84 | { |
| sanirash | 0:56d18c34a019 | 85 | pc.printf("%c",abc); |
| sanirash | 0:56d18c34a019 | 86 | GreenLED=0; |
| sanirash | 0:56d18c34a019 | 87 | } |
| sanirash | 0:56d18c34a019 | 88 | } |
| sanirash | 0:56d18c34a019 | 89 | wait_ms(100); |
| sanirash | 0:56d18c34a019 | 90 | } |
| sanirash | 0:56d18c34a019 | 91 | |
| sanirash | 0:56d18c34a019 | 92 | |
| sanirash | 0:56d18c34a019 | 93 | |
| sanirash | 0:56d18c34a019 | 94 | } |