
22
Dependencies: MMA8451Q mbed nRF24L01P
main.cpp@0:295c4784a7a6, 2017-04-04 (annotated)
- Committer:
- Devashish1806
- Date:
- Tue Apr 04 07:46:30 2017 +0000
- Revision:
- 0:295c4784a7a6
22
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Devashish1806 | 0:295c4784a7a6 | 1 | #include "mbed.h" |
Devashish1806 | 0:295c4784a7a6 | 2 | #include "nRF24L01P.h" |
Devashish1806 | 0:295c4784a7a6 | 3 | #include "MMA8451Q.h" |
Devashish1806 | 0:295c4784a7a6 | 4 | |
Devashish1806 | 0:295c4784a7a6 | 5 | Serial pc(USBTX, USBRX); // tx, rx |
Devashish1806 | 0:295c4784a7a6 | 6 | |
Devashish1806 | 0:295c4784a7a6 | 7 | nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4); // mosi, miso, sck, csn, ce, irq |
Devashish1806 | 0:295c4784a7a6 | 8 | DigitalOut ledr(PTA5); |
Devashish1806 | 0:295c4784a7a6 | 9 | DigitalOut ledg(PTA12); |
Devashish1806 | 0:295c4784a7a6 | 10 | DigitalOut ledb(PTC8); |
Devashish1806 | 0:295c4784a7a6 | 11 | |
Devashish1806 | 0:295c4784a7a6 | 12 | int main() { |
Devashish1806 | 0:295c4784a7a6 | 13 | char count[2]; |
Devashish1806 | 0:295c4784a7a6 | 14 | char RxDataCnt; |
Devashish1806 | 0:295c4784a7a6 | 15 | char temp; |
Devashish1806 | 0:295c4784a7a6 | 16 | float x; |
Devashish1806 | 0:295c4784a7a6 | 17 | float y; |
Devashish1806 | 0:295c4784a7a6 | 18 | |
Devashish1806 | 0:295c4784a7a6 | 19 | |
Devashish1806 | 0:295c4784a7a6 | 20 | my_nrf24l01p.powerUp(); |
Devashish1806 | 0:295c4784a7a6 | 21 | my_nrf24l01p.setRfFrequency(2416); |
Devashish1806 | 0:295c4784a7a6 | 22 | // Display the (default) setup of the nRF24L01+ chip |
Devashish1806 | 0:295c4784a7a6 | 23 | pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
Devashish1806 | 0:295c4784a7a6 | 24 | pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
Devashish1806 | 0:295c4784a7a6 | 25 | pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
Devashish1806 | 0:295c4784a7a6 | 26 | pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); |
Devashish1806 | 0:295c4784a7a6 | 27 | pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() ); |
Devashish1806 | 0:295c4784a7a6 | 28 | |
Devashish1806 | 0:295c4784a7a6 | 29 | pc.printf( "Simple 4 Byte Receiver\r\n" ); |
Devashish1806 | 0:295c4784a7a6 | 30 | |
Devashish1806 | 0:295c4784a7a6 | 31 | RxDataCnt = 2; |
Devashish1806 | 0:295c4784a7a6 | 32 | my_nrf24l01p.setTransferSize( RxDataCnt ); |
Devashish1806 | 0:295c4784a7a6 | 33 | |
Devashish1806 | 0:295c4784a7a6 | 34 | my_nrf24l01p.setReceiveMode(); |
Devashish1806 | 0:295c4784a7a6 | 35 | my_nrf24l01p.enable(); |
Devashish1806 | 0:295c4784a7a6 | 36 | while (1) { |
Devashish1806 | 0:295c4784a7a6 | 37 | |
Devashish1806 | 0:295c4784a7a6 | 38 | |
Devashish1806 | 0:295c4784a7a6 | 39 | |
Devashish1806 | 0:295c4784a7a6 | 40 | // If we've received anything in the nRF24L01+... |
Devashish1806 | 0:295c4784a7a6 | 41 | if ( my_nrf24l01p.readable() ) { |
Devashish1806 | 0:295c4784a7a6 | 42 | |
Devashish1806 | 0:295c4784a7a6 | 43 | // ...read the data into the receive buffer |
Devashish1806 | 0:295c4784a7a6 | 44 | temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt ); |
Devashish1806 | 0:295c4784a7a6 | 45 | |
Devashish1806 | 0:295c4784a7a6 | 46 | |
Devashish1806 | 0:295c4784a7a6 | 47 | pc.printf( "Cnt %d = %d %d\r\n",temp,count[0],count[1]); |
Devashish1806 | 0:295c4784a7a6 | 48 | x = (count[0]/70)-3.3; |
Devashish1806 | 0:295c4784a7a6 | 49 | y = (count[1]/70)-3.3; |
Devashish1806 | 0:295c4784a7a6 | 50 | |
Devashish1806 | 0:295c4784a7a6 | 51 | if((x>-0.2 && x<0.2) && (y>-0.2 && y<0.2)) |
Devashish1806 | 0:295c4784a7a6 | 52 | { |
Devashish1806 | 0:295c4784a7a6 | 53 | |
Devashish1806 | 0:295c4784a7a6 | 54 | ledg = 1; |
Devashish1806 | 0:295c4784a7a6 | 55 | ledb = 1; |
Devashish1806 | 0:295c4784a7a6 | 56 | ledr = 0; |
Devashish1806 | 0:295c4784a7a6 | 57 | |
Devashish1806 | 0:295c4784a7a6 | 58 | } |
Devashish1806 | 0:295c4784a7a6 | 59 | else if(((x>-0.6 && x<-0.2) | (x>0.2 && x<0.6)) || ((y>-0.6 && y<-0.2) | (y>0.2 && y<0.6))) |
Devashish1806 | 0:295c4784a7a6 | 60 | { |
Devashish1806 | 0:295c4784a7a6 | 61 | |
Devashish1806 | 0:295c4784a7a6 | 62 | ledr = 1; |
Devashish1806 | 0:295c4784a7a6 | 63 | ledb = 1; |
Devashish1806 | 0:295c4784a7a6 | 64 | ledg = 0; |
Devashish1806 | 0:295c4784a7a6 | 65 | |
Devashish1806 | 0:295c4784a7a6 | 66 | } |
Devashish1806 | 0:295c4784a7a6 | 67 | else if((x<-0.6 | x>0.6) | (y<-0.6 | y>0.6)) |
Devashish1806 | 0:295c4784a7a6 | 68 | { |
Devashish1806 | 0:295c4784a7a6 | 69 | ledg = 1; |
Devashish1806 | 0:295c4784a7a6 | 70 | ledr = 1; |
Devashish1806 | 0:295c4784a7a6 | 71 | ledb = 0; |
Devashish1806 | 0:295c4784a7a6 | 72 | |
Devashish1806 | 0:295c4784a7a6 | 73 | |
Devashish1806 | 0:295c4784a7a6 | 74 | } |
Devashish1806 | 0:295c4784a7a6 | 75 | else |
Devashish1806 | 0:295c4784a7a6 | 76 | { |
Devashish1806 | 0:295c4784a7a6 | 77 | ledr = 1; |
Devashish1806 | 0:295c4784a7a6 | 78 | ledg = 1; |
Devashish1806 | 0:295c4784a7a6 | 79 | ledb = 1; |
Devashish1806 | 0:295c4784a7a6 | 80 | |
Devashish1806 | 0:295c4784a7a6 | 81 | } |
Devashish1806 | 0:295c4784a7a6 | 82 | |
Devashish1806 | 0:295c4784a7a6 | 83 | // Toggle LED2 (to help debug nRF24L01+ -> Host communication) |
Devashish1806 | 0:295c4784a7a6 | 84 | |
Devashish1806 | 0:295c4784a7a6 | 85 | } |
Devashish1806 | 0:295c4784a7a6 | 86 | } |
Devashish1806 | 0:295c4784a7a6 | 87 | |
Devashish1806 | 0:295c4784a7a6 | 88 | } |