
ORIENTATION_NRF
Dependencies: MMA8451Q mbed nRF24L01P
main.cpp@0:e16df03be291, 2017-04-04 (annotated)
- Committer:
- tanvividushi
- Date:
- Tue Apr 04 05:09:48 2017 +0000
- Revision:
- 0:e16df03be291
transmitter code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tanvividushi | 0:e16df03be291 | 1 | #include "mbed.h" |
tanvividushi | 0:e16df03be291 | 2 | #include "nRF24L01P.h" |
tanvividushi | 0:e16df03be291 | 3 | #define Address (0x1d<<1) |
tanvividushi | 0:e16df03be291 | 4 | #include "MMA8451Q.h" |
tanvividushi | 0:e16df03be291 | 5 | |
tanvividushi | 0:e16df03be291 | 6 | BusOut rgbled(PTA5,PTA12,PTC8); |
tanvividushi | 0:e16df03be291 | 7 | MMA8451Q acc(PTE25,PTE24,Address); |
tanvividushi | 0:e16df03be291 | 8 | Serial pc(USBTX, USBRX); // tx, rx |
tanvividushi | 0:e16df03be291 | 9 | |
tanvividushi | 0:e16df03be291 | 10 | nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4); // mosi, miso, sck, csn, ce, irq |
tanvividushi | 0:e16df03be291 | 11 | DigitalOut RedLED(PTA5); |
tanvividushi | 0:e16df03be291 | 12 | float xaxis ,yaxis; |
tanvividushi | 0:e16df03be291 | 13 | |
tanvividushi | 0:e16df03be291 | 14 | int main() |
tanvividushi | 0:e16df03be291 | 15 | { |
tanvividushi | 0:e16df03be291 | 16 | char count[1]; |
tanvividushi | 0:e16df03be291 | 17 | char TxDataCnt; |
tanvividushi | 0:e16df03be291 | 18 | char temp; |
tanvividushi | 0:e16df03be291 | 19 | |
tanvividushi | 0:e16df03be291 | 20 | |
tanvividushi | 0:e16df03be291 | 21 | my_nrf24l01p.powerUp(); |
tanvividushi | 0:e16df03be291 | 22 | my_nrf24l01p.setRfFrequency(2445); |
tanvividushi | 0:e16df03be291 | 23 | |
tanvividushi | 0:e16df03be291 | 24 | // Display the (default) setup of the nRF24L01+ chip |
tanvividushi | 0:e16df03be291 | 25 | pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
tanvividushi | 0:e16df03be291 | 26 | pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
tanvividushi | 0:e16df03be291 | 27 | pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
tanvividushi | 0:e16df03be291 | 28 | pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); |
tanvividushi | 0:e16df03be291 | 29 | pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() ); |
tanvividushi | 0:e16df03be291 | 30 | |
tanvividushi | 0:e16df03be291 | 31 | pc.printf( "Simple Transmitter (0 - 9 Counter) \r\n"); |
tanvividushi | 0:e16df03be291 | 32 | |
tanvividushi | 0:e16df03be291 | 33 | TxDataCnt = 1; |
tanvividushi | 0:e16df03be291 | 34 | my_nrf24l01p.setTransferSize(TxDataCnt); |
tanvividushi | 0:e16df03be291 | 35 | |
tanvividushi | 0:e16df03be291 | 36 | my_nrf24l01p.enable(); |
tanvividushi | 0:e16df03be291 | 37 | |
tanvividushi | 0:e16df03be291 | 38 | |
tanvividushi | 0:e16df03be291 | 39 | while (1) { |
tanvividushi | 0:e16df03be291 | 40 | |
tanvividushi | 0:e16df03be291 | 41 | // Send the Transmit buffer via the nRF24L01+ |
tanvividushi | 0:e16df03be291 | 42 | temp = my_nrf24l01p.write( NRF24L01P_PIPE_P0,count, TxDataCnt ); |
tanvividushi | 0:e16df03be291 | 43 | |
tanvividushi | 0:e16df03be291 | 44 | xaxis=acc.getAccX(); |
tanvividushi | 0:e16df03be291 | 45 | yaxis=acc.getAccY(); |
tanvividushi | 0:e16df03be291 | 46 | if((xaxis>=-0.2 && xaxis<=0.2) && (yaxis>=-0.2 && yaxis<=0.2)) |
tanvividushi | 0:e16df03be291 | 47 | { |
tanvividushi | 0:e16df03be291 | 48 | |
tanvividushi | 0:e16df03be291 | 49 | rgbled=0x06; |
tanvividushi | 0:e16df03be291 | 50 | count[0]=0; |
tanvividushi | 0:e16df03be291 | 51 | pc.printf("ok\n\r"); |
tanvividushi | 0:e16df03be291 | 52 | wait(0.5); |
tanvividushi | 0:e16df03be291 | 53 | } |
tanvividushi | 0:e16df03be291 | 54 | |
tanvividushi | 0:e16df03be291 | 55 | else if((xaxis>-0.6 && xaxis<-0.2) || (xaxis>0.2 && xaxis<0.6 ) || (yaxis>-0.6 && yaxis<-0.2) || (yaxis>0.2 && yaxis<0.6 ) ) |
tanvividushi | 0:e16df03be291 | 56 | { |
tanvividushi | 0:e16df03be291 | 57 | rgbled=0x05; |
tanvividushi | 0:e16df03be291 | 58 | count[0]=1; |
tanvividushi | 0:e16df03be291 | 59 | pc.printf("not ok\n\r"); |
tanvividushi | 0:e16df03be291 | 60 | wait(0.5); |
tanvividushi | 0:e16df03be291 | 61 | } |
tanvividushi | 0:e16df03be291 | 62 | |
tanvividushi | 0:e16df03be291 | 63 | else |
tanvividushi | 0:e16df03be291 | 64 | { |
tanvividushi | 0:e16df03be291 | 65 | rgbled=0x03; |
tanvividushi | 0:e16df03be291 | 66 | count[0]=2; |
tanvividushi | 0:e16df03be291 | 67 | pc.printf("emergency!!!!\n\r"); |
tanvividushi | 0:e16df03be291 | 68 | wait(0.5); |
tanvividushi | 0:e16df03be291 | 69 | } |
tanvividushi | 0:e16df03be291 | 70 | pc.printf( "orientation data - %d\r\n",count[0]); |
tanvividushi | 0:e16df03be291 | 71 | pc.printf( "Sending %d - %d \r\n",temp,count[0]); |
tanvividushi | 0:e16df03be291 | 72 | RedLED = !RedLED; |
tanvividushi | 0:e16df03be291 | 73 | } |
tanvividushi | 0:e16df03be291 | 74 | |
tanvividushi | 0:e16df03be291 | 75 | // Toggle LED1 (to help debug Host -> nRF24L01+ communication) |
tanvividushi | 0:e16df03be291 | 76 | // RedLED = !RedLED; |
tanvividushi | 0:e16df03be291 | 77 | |
tanvividushi | 0:e16df03be291 | 78 | |
tanvividushi | 0:e16df03be291 | 79 | |
tanvividushi | 0:e16df03be291 | 80 | // wait(0.01); |
tanvividushi | 0:e16df03be291 | 81 | } |
tanvividushi | 0:e16df03be291 | 82 |